在程序化的Spring @Configuration中指定Shiro的LifecycleBeanPostProcessor会导致错误

时间:2013-03-21 04:26:39

标签: spring shiro

我有一个以编程方式配置的Spring Web应用程序。我正在尝试Apache Shiro作为我的身份验证框架,我遇到了将Shiro与Spring集成的问题,特别是使用程序化配置(因为我决定不想编写大量的XML)。这是相关的代码段:

@Configuration //Replaces Spring XML configuration
@EnableTransactionManagement //Enables declarative Transaction annotations
public class SpringAppConfig {
    @Bean
    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
        return new LifecycleBeanPostProcessor();
    }
}

当我启动我的网络应用程序时,我遇到错误,Spring无法使用注释处理我的任何bean。

1 个答案:

答案 0 :(得分:0)

根据此问题中的评论:https://issues.apache.org/jira/browse/SHIRO-222

我应该将方法声明为static以避免早期的配置bean创建(我实际上还不太清楚Spring配置机制是如何工作的,这可能是我遇到此错误的原因)。

@Bean
public static LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
    return new LifecycleBeanPostProcessor();
}

这可以防止发生所有错误。