`

@Autowired的顺序是怎样执行的?

 
阅读更多
一、问题

问题;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方法
分享到:
评论

相关推荐

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    通过@Bean 和spring的factoryBean注入的bean. 以及对应@service注解注入的类 通过@Autowired 注入对象的时间是现根据类型在根据beanName获取的案例集合

    Spring @Aspect注解

    Spring boot @Aspect简介使用场景列子1 (演示基本过程切点表达式切点复合运算切点匹配方法通知注解切面类执行顺序 简介 在 Spring实现 AOP面向切面编程, 是通过 @Aspect注解来实现切面的 使用场景 常见用于记录日志,...

    spring加载顺序讨论

    加载顺序讨论加载顺序讨论

    Java常见面试题208道.docx

    151.rabbitmq 对集群节点停止顺序有要求吗? 十五、Kafka 152.kafka 可以脱离 zookeeper 单独使用吗?为什么? 153.kafka 有几种数据保留的策略? 154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息...

    基于Redis的分布式配置管理中心.zip

    @Autowired private Environment environment; String value = environment.getProperty(key); 文件缓存 客户端会在${user.home}/${appId}.properties中缓存Redis中的配置项内容。 若没有连接Redis或Redis中找不到...

    spring-learn:Spring轻松学习demo

    Spring学习 介绍 Spring轻松学习demo 1.弹簧IOC容器 1.弹簧注入方式 set方法注入 构造方法注入 2.Bean的装配 1.豆的作用域 单例单例获取 ... @Order(1)更改注解顺序,list中有效 @Qualifier(“ beanServi

    keepnote2

    在本案例研究中:保留注释步骤2,我们将创建一个应用程序,该应用程序从前端输入注释标题,注释内容和注释状态作为输入,并以相反的时间顺序显示它们以及发布的LocalDateTime(最新注释)。第一的)。 即使在功能上...

    基于Springboot SSM框架+Mysql的电子商务商城项目源码+项目说明(本科课程设计).zip

    【资源说明】 1、基于Springboot SSM框架+Mysql的电子商务商城项目源码+项目说明... @Autowired DataSource dataSource; @Test public void getConnection() throws SQLException { Connection conn = dataSour

    Spring.html

    注意:使用注解的方式,最终通知和后置通知顺序换了,建议使用环绕通知 注解 配置 声明式事务管理 PlatFormTransactionManager:平台事务管理器:定义了commit/rollback Mybatis/jdbc:...

    springmybatis

    请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1) 其实还有更简单的方法,而且是更好的方法,使用合理描述参数和...

Global site tag (gtag.js) - Google Analytics