基于注解的自动装配

自动装配

@Autowired

​ 1. 默认优先按照类型去容器中找对应的组件:applicationContext.getBean(BookDao.class);

  1. 如果找到多相同的组件 ,就再将属性的名称作为组件的Id 去容器里面查找 applicationContext.getBean(“bookdao”)

    BookService{
    	@Auotwired
    	BookDao bookdao;
    }
    
  2. @Qualifier(“bookDao”) :使用@Qualifier 指定需要装配的组件Id 而不是使用属性名

  3. 自动装配 默认一定要把属性赋值好 没有就会报错 (@Autotwired(required =true)默认为true指定为false 就不会报错 并且自动装配中的Book service里面的bookDao =null

  4. @Primary 让Spring 进行自动装配的时候 默认使用首选的bean 也可以使用@Qualifier 指点

@Resource(JSR250)

​ @Resource 可以和@Autowired 一样进行自动装配 自动装配中默认使用按照组件名称进行装配

​ 同样可使用@Resourse(name =“bookDao2”) 来指定装配bookDao2

​ 不支持@Primary功能和不支持@Autowired(reqiured = false);

@InJect(JSR330)

需要导入javax.inject 依赖

功能和@Autowired 一样 但是没有reqiued =fasle 的功能

@Autowired 是 Spring定义的 @Resourse 和@Inject 是java规范

AutowiredAnnotationBeanPostProcessor : 解析完成自动装配

方法 构造器的自动装配

@Autowired :构造器,常数,方法 属性都是容器中获取参数组件的值

​ 1) 标记方法位置 (@Bean+方法参数 标注的方法创建对象的时候,方法参数的值从容器里面获取 默认不写@Autowired)

​ 2 标记在有参构造器上面:如果只有一个有构造器。这个有参构造器上面的@Autowired可以省略 参数组件还是可以从容器中获取

​ 3)参数位置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值