一、问题
问题;Spring3中在Bean中多个属性,多个方法@Autowired的顺序是怎样执行的?
Demo
[java] view plaincopy
@Component
public class MyBean {
@Value("#{properties['security.token.default']}")
private String expiretime; //1
public String getExpiretime() {
return expiretime;
}
@Autowired
public void setExpiretime( //2
@Value("#{bcmsmProperties['security.token.default']}") String expiretime) {
this.expiretime = expiretime;
}
@Autowired
public void init() { //3
System.err.println("expiretime2:" + expiretime);
}
}
是位置1 还是位置2 还是位置3先执行?
执行结果:
1.先执行位置1,属性expiretime先被注入;
2.再到位置3 init();
3.再到位置2 setExpiretime。
、结论
1.@Autowired属性的注入顺序依赖于class.getDeclaredFields()的顺序
2.@Autowired方法的注入顺序依赖于class.getDeclaredMethods()的顺序
3.@Autowired 属性会优先生效于 @Autowired方法
分享到:
相关推荐
通过@Bean 和spring的factoryBean注入的bean. 以及对应@service注解注入的类 通过@Autowired 注入对象的时间是现根据类型在根据beanName获取的案例集合
Spring boot @Aspect简介使用场景列子1 (演示基本过程切点表达式切点复合运算切点匹配方法通知注解切面类执行顺序 简介 在 Spring实现 AOP面向切面编程, 是通过 @Aspect注解来实现切面的 使用场景 常见用于记录日志,...
加载顺序讨论加载顺序讨论
151.rabbitmq 对集群节点停止顺序有要求吗? 十五、Kafka 152.kafka 可以脱离 zookeeper 单独使用吗?为什么? 153.kafka 有几种数据保留的策略? 154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息...
@Autowired private Environment environment; String value = environment.getProperty(key); 文件缓存 客户端会在${user.home}/${appId}.properties中缓存Redis中的配置项内容。 若没有连接Redis或Redis中找不到...
Spring学习 介绍 Spring轻松学习demo 1.弹簧IOC容器 1.弹簧注入方式 set方法注入 构造方法注入 2.Bean的装配 1.豆的作用域 单例单例获取 ... @Order(1)更改注解顺序,list中有效 @Qualifier(“ beanServi
在本案例研究中:保留注释步骤2,我们将创建一个应用程序,该应用程序从前端输入注释标题,注释内容和注释状态作为输入,并以相反的时间顺序显示它们以及发布的LocalDateTime(最新注释)。第一的)。 即使在功能上...
【资源说明】 1、基于Springboot SSM框架+Mysql的电子商务商城项目源码+项目说明... @Autowired DataSource dataSource; @Test public void getConnection() throws SQLException { Connection conn = dataSour
注意:使用注解的方式,最终通知和后置通知顺序换了,建议使用环绕通知 注解 配置 声明式事务管理 PlatFormTransactionManager:平台事务管理器:定义了commit/rollback Mybatis/jdbc:...
请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1) 其实还有更简单的方法,而且是更好的方法,使用合理描述参数和...