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,于是产生如上错误。我们只用调整顺序,保证被依赖的对象先注入,即可解决问题。

  • 相关阅读:
    C++命名法则
    腾讯附加题---递归
    决策树
    ubuntu16.04安装后干的事
    node
    iview datetime日期时间限制
    GitLab CI/CD
    本地项目上传到github
    npm--配置私服
    gitlab添加yml文件.gitlab-ci.yml
  • 原文地址:https://www.cnblogs.com/theStone/p/14470762.html
Copyright © 2011-2022 走看看