记一个Shiro自定义Dao和Spring Boot的小细节

背景

非常简单的问题,但是之前接触的较少,或者都是默认情况,这边做个记录。

Spring Boot项目,整合Shiro,当前做Session多台服务器之间的数据库同步。

问题与解决

在ShiroConfig类的编写过程中,需要进行sessionManager.setSessionDAO(自定义DAO)定义session处理方式,但好像是由于Shiro和Spring加载顺序的原因,如果直接@Autowried,会导致空指针错误,因为dao并未被加载进来。

所以这边使用如下方法定义即可:

@Bean(name = "mySqlSessionDao")
public MySqlSessionDao mySqlSessionDao() {
    return new MySqlSessionDao();  
}

// 使用如下
sessionManager.setSessionDAO(mySqlSessionDao());

 

posted @ 2021-12-29 16:31  糖醋小灰  阅读(101)  评论(0)    收藏  举报