Spring容器三种注入类型

Spring注入有三种方式:

1、Set注入(使用最多

2、构造器注入(使用不多)

3、接口注入(几乎不用)不做测试了


1、Set注入:所谓Set注入就是容器内部调用了bean的Set***方法,注意:xml文件中的名字一定要和对象中属性的名字对应

1
2
3
4
5
6
7
8
9
public class User {
     private Role role; //注意:配置文件中property中name的名字跟这个属性的名字一定要相同,不然会找不到
     public Role getRole() {
         return role;
     }
     public void setRole(Role role) {
         this .role = role;
     }
}

配置文件配置方式

1
2
3
4
5
< bean id = "role" class = "com.fz.entity.Role" ></ bean >
 
< bean name = "user" class = "com.fz.entity.User" scope = "prototype" >
     < property name = "role" ref = "role" ></ property >
</ bean >



2、构造器注入:

1
2
3
4
5
6
7
8
9
10
public class Role {
     private int id;
     private String roleName;
     
     public Role( int id, String roleName) {
         super ();
         this .id = id;
         this .roleName = roleName;
     }
}

构造方法注入需要传参数:1、使用类型传参数  2、使用索引传参数(建议)

1
2
3
4
5
6
7
8
9
10
11
< bean id = "role" class = "com.fz.entity.Role" >
     <!-- 1、使用类型给构造器传参数 -->
     <!-- <constructor-arg type="int" value="1"/>
          <constructor-arg type="java.lang.String" value="管理员"/>
      -->
 
     <!-- 2、使用索引给构造器传参数 -->
     < constructor-arg index = "0" value = "2" />
     < constructor-arg index = "1" value = "超级管理员" />
     <!-- 类型和索引可以结合使用,但是不能同时使用,也就是说构造器里有几个参数,这里也就有几个constructor-arg -->
</ bean >


注意:在这里<bean>标签的名称可以用id也可以用name

<bean id="user">和<bean name="user">结果都是一样的,用id和用name的唯一区别就是,name可以使用特殊字符,id则不行。

例如:

<bean name="user**" >这样写不会报错,通过getBean也可以获取到

<bean id="user**" >这样写就直接会报错










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值