spring学习总结

spring学习总结spring学习总结

大家好,又见面了,我是你们的朋友全栈君。

    最近几天学习了一些关于spring的东西,以前对spring的认识最大的就是控制反转和依赖注入,原理也不是很清楚。今天就谈谈控制反转和依赖注入新的认识。

    控制反转就是把创建对象的过程交给spring去管理。最初我们采用new来创建一个新的对象,加入了spring之后,就可以通过spring来创建,主要有两种方式,一种是通过配置文件,另一种是通过注解。 

如果是通过配置文件来创建对象的代码为:

<bean id="userService" class="cn.tgb.UserService"/〉

    class指的是需要实例化的类,这里是类的完整路径。

创建一个UserService类的对象:

public void testUser(){
    //1.加载spring配置文件
    ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
    //2.得到创建的对象
    UserService user = context.getBean("userService");
}

通过注解创建对象就是在要实例的类上面加上注解。

@Component(value="user")
public class UserService{
   public void add(){
       system.out.println("add-method");
   }
}

创建对象的注解有四个,分别为:Component,Controller,Service,Repository。

属性注入就是创建对象的时候,向类中的属性赋值。在spring中,我们可以通过set方法或有参的构造函数注入。比如说我们通过有参数的构造函数注入:

向UserService类中的username属性注入值为“张三”:

<!--使用有参数的构造注入属性-->
<bean id="userService" class="cn.tgb.UserService"〉
    <!--使用有参构造注入,name:属性名称,value:具体的属性值-->
    <constructor-arg name="username" value="张三"/>
<bean/>

UserService类:

public class UserService{
    private String username;
    
    public UserService(String username){
        this.username = username;
    }

    public void add(){
         System.out.println("add user:" + username);
    }
}

使用set方法注入:

public class UserService{
    private String username;
    
    public setUserName(String username){
        this.username = username;
    }

    public void add(){
         System.out.println("add user:" + username);
    }
}

配置文件:

<!--使用set方法注入属性-->
<bean id="userService" class="cn.tgb.UserService"〉
    <!--注入属性值,name:属性名称,value:具体的属性值-->
    <property name="username" value="张三"><property/>
<bean/>

    属性的注入跟创建对象一样,既可以通过配置文件设置,也可以用注解的方式。注入属性的两个关键字为:Autowired和Resource。把注解加到对应的属性上面就可以。

     感觉spring刚刚入了一点门,接下来再深入学习。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105652.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java io流文件读取和写入

    Java io流文件读取和写入Javaio流操作demo类1.读取操作/***@authorlxw*@date2020/6/24*@desc获取文件输入流,这里读入内存中*@param[fileName]*@returnbyte[]**/publicbyte[]readPdfFile(StringfileName)throwsException{InputStreamin=null;

    2022年5月7日
  • Python range 函数 – Python零基础入门教程

    Python range 函数 – Python零基础入门教程目录一.Pythonrange函数简介二.Pythonrange函数使用1.Pythonrange函数常规使用2.Pythonrange函数在for循环中使用三.猜你喜欢

    2022年7月5日
  • 正则过滤内网地址和网段不一致_ip地址不是局域网网段的ip

    正则过滤内网地址和网段不一致_ip地址不是局域网网段的ip1.问题描述我要过滤出ABC类内网地址和CIDR格式的内网IP段主要是以下段1.A类地址:10.0.0.0~10.255.255.2552.B类地址:172.16.0.0~172.31.255.2553.C类地址:192.168.0.0~192.168.255.2552.解决问题正则表达式:^(10\.\d{1,3}\.\d{1,3}\.((0\/([89]|1[0-9]|2\d|3[012]))|(\d{1,3})))|(172\.(1[6789]|2\\d|3[01])\.\d{1,3

    2022年9月14日
  • 电子元器件品牌及其代理商

    电子元器件品牌及其代理商海思(Hisilicon)在大中华区的授权分销商有:深圳市群方电子、深圳市淇诺实业、晓龙国际、威健实业、中国电子器材、深圳市智宇鹏电子等。 紫光在大中华区的授权分销商包括:Arrow,中豪,力同科技,泰发科电子,普浩国际,Mornsun,国华,厦门建益达,昱博科技,CEACSZ,WPG等。 全志科技在大中华区的授权分销商有:君行科技,蓝欣电子,易新泰科技,方糖电子等。 兆易创新(Giga…

    2022年6月29日
  • disk boot failure ,insert sysytem disk and press enter解决方法

    disk boot failure ,insert sysytem disk and press enter解决方法故障分析与处理从现象上看硬盘可能是损坏了,如果在无法启动前的最后一次关机是按照正常程序退出。将硬盘拆下来连接到另外一台机器上,开机启动后进入CMOS设置主菜单,选择“IDE HDD AUTO DETECTION”栏,检测到硬盘参数,能正常进入硬盘。将硬盘装回到原来的机器上,进入CMOS设置后能自动检测到硬盘的参数,恢复了正常启动。关机时按照正常程序退出,而下一次开机时无法用硬盘启动并且无

    2022年7月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号