zoukankan      html  css  js  c++  java
  • Autowire注入顺序

    Autowire注入顺序问题

    ​ 这是这几天使用spring security配置RememberMe功能中遇见的错误。以下是错误代码

    	@Autowired
        private PersistentTokenRepository pt;
    
        @Autowired
        private DataSource ds;
    
        @Bean
        public PersistentTokenRepository getPersitent(){
            JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl();
            jdbcTokenRepository.setDataSource(ds);
            return jdbcTokenRepository;
        }
    

    ​ 如上配置产生以下错误

    Caused by: java.lang.IllegalArgumentException: Property 'dataSource' is required
    
    

    ​ 然后通过在getPersitent方法中答应DataSource为null。原因是先注入pt,先执行getPersitent方法,但是DataSouce对象还没有创建,我们知道@Autowire默认是require=true,于是产生如上错误。我们只用调整顺序,保证被依赖的对象先注入,即可解决问题。

  • 相关阅读:
    结构体比较
    不定长参数列表用法
    接口
    字符串数据类型
    *和**的打包和解包
    python类常用装饰器
    继承的实现
    map用法
    包的导入和init函数
    协程
  • 原文地址:https://www.cnblogs.com/theStone/p/14470762.html
Copyright © 2011-2022 走看看