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

posted @ 2021-03-02 19:32  站在巨人肩上的人  阅读(239)  评论(0编辑  收藏  举报