【spring】bean的装配

1.bean装配

  • 1.bean的装配是指在spring容器中把bean组装在一起
  • 2.装配的前提是spring容器需要知道bean的依赖关系
  • 3. 通过依赖注入把bean装配在一起
  • 4.将一个Bean自动注入到其他Bean的Property中叫自动装配

2.装配的方式

  • 1.基于xml装配
  • 2.基于注解装配

3.基于xml装配

  • 1.设置值注入
  • 2.构造方法注入

4.设置值注入

  • 1.Bean类需要提供一个默认的无参构造方法
  • 2.Bean类需要为注入的属性提供set方法
  • 3.配置文件通过<bean><property></property></bean>中的property标签为属性注入值

5.构造方法注入

  • 1.Bean类需要提供有参构造方法
  • 2.配置文件通过<constructor-arg>标签来定义构造方法的参数,也可以使用其value属性来设置该参数的值

6.基于注解的装配

  • 1.@Component:描述Spring中的Bean,可以作用在任何层次
  • 2.@Repository: 用于持久层(Dao层)
  • 3.@Service:用于业务层(Service层)
  • 4.@Controller:用于控制层(Controller层)
  • 5.@Autowired:用于对Bean的属性变量、属性的setter方法以及构造方法进行标注,配合对应的注解处理器完成Bean的自动装配工作。默认按照Bean的类型进行装配。
  • 6.@Resource:作用和@Autowired一样。区别是@Autowired默认Bean的类型装配,@Resource默认按照Bean的实例名称进行装配。@Resource有name和type两个属性,name会解析为Bean的实例名称,type会解析为Bean的实例类型。指定name则按实例名称进行装配,指定type则按类型进行装配,都不指定则先按name再按type,都没有的话抛出NoSuchBeanDefinitionException异常
  • 7.@Qualifier:当一个接口A有两个实现类A1、A2,如果@Autowired private A a1;此时按类型装配,会找到a1和a2,此时会尝试按名称a1装配(setA1方法去掉set然后首字符小写),得到a1。如果@Autowired private A b;此时按类型装配,会找到a1和a2,此时会尝试按名称b来装配,但找不到,此时会抛出异常NoUniqueBeanDefinitionException。可以加个@Qualifier注解指定名称装配

7.自动装配

  • 1.spring的 <bean>元素中包含一个 autowire 属性,通过设置 autowire 的属性值来自动装配Bean
  • 2.default:由<beans>的default-autowire属性值来确定
  • 3.byName:根据属性的名称自动装配。容器将根据名称查找与属性完全一致的Bean,并将其属性自动装配
  • 4.byType:根据属性的数据类型自动装配。
  • 5.constructor:根据构造函数参数的数据类型,进行byType模式的自动装配
  • 6.no:在默认情况下,不使用自动装配,Bean依赖必须通过ref元素定义
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王佑辉

老板,赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值