Spring注入 @Autowired和setter方式区别原理
2017-06-22 17:04
417 查看
spring 的注入方式有:setter、constructor、静态工厂方法、实例工厂方法、注解@Autowired自动装配几种方式。
今天我们要了解的是:setter和@Autowired两种方式的区别,常用的setter方式很好理解,通过调用Bean的属性setter方法直观的赋值即可。而@Autowired方式,没有setter方法赋值又是通过什么方式实现的呢?看一下spring源码:
1、AbstractAutowireCapableBeanFactory类中的autowireBean()方法
populateBean()方法:
2、AutowiredAnnotationBeanPostProcessor类中通过postProcessPropertyValues()方法很容易找到内部类AutowiredFieldElement.inject()方法:
通过上面的代码很容易了解到,@Autowired方式是通过反射来设置属性值的,噢。。。。。。。。。万能而无节操的反射,明白了吧
今天我们要了解的是:setter和@Autowired两种方式的区别,常用的setter方式很好理解,通过调用Bean的属性setter方法直观的赋值即可。而@Autowired方式,没有setter方法赋值又是通过什么方式实现的呢?看一下spring源码:
1、AbstractAutowireCapableBeanFactory类中的autowireBean()方法
populateBean()方法:
2、AutowiredAnnotationBeanPostProcessor类中通过postProcessPropertyValues()方法很容易找到内部类AutowiredFieldElement.inject()方法:
通过上面的代码很容易了解到,@Autowired方式是通过反射来设置属性值的,噢。。。。。。。。。万能而无节操的反射,明白了吧
相关文章推荐
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别 .
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring的注解注入方式@Autowired,@Resource
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- JAVA温习:Spring的注解注入及区别 @Resource @Autowired
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- 细谈Spring(十一) @Resource、@Autowired、@Qualifier的注解注入及区别
- Spring中@Resource、@Autowired、@Qualifier的注解注入及区别
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- (3) 利用 Setter方式实现 【第一种方式】 依赖注入,编码剖析Spring依赖注入的原理
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- spring与hibernate整合之:继承HibernateDAOSupport方式+理解xml与AutoWired、Resource的区别