在启动Springboot项目时,报错:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'shiroFilter' available
第一反应是shiroFilter拼写错了。于是检查相关代码:
1、注入过滤器的代码
registration.setFilter(new DelegatingFilterProxy("shiroFilter"));
2、自动注册Bean的代码
@Bean("shiroFilter")
public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
发现两个类中shiroFilter的拼写都没有问题。
然后开始debug断点调试。发现代码根本就没有进入自动注册的Bean的代码中。与是检查ShiroConfig的代码,发现类上边少写了@Configuration,好尴尬啊!~