依赖于a的bean的较早初始化
DataSource绝对是问题所在。根本原因与Spring
Boot或自动配置无关,而是通过一个由包裹您的业务bean的方面来应用简单的老式鸡和蛋方法安全性
BeanPostProcessor。一个bean只能发表一些初始化处理
非常
早。在这种情况下,进行
DataSource注入还为时过早(实际上,实例化
@Configuration需要的类
DataSource为时过早,无法正确包装在
@Configuration加工机械中,因此无法自动接线)。我的建议(只会使您与缺少相同之处
AuthenticationManager)是将声明
GlobalMethodSecurityConfiguration为嵌套类,而不是将其声明为嵌套类。
DataSource
在以下位置需要:
@EnableGlobalMethodSecurity(prePostEnabled = true)@Configurationprotected static class ActualMethodSecurityConfiguration extends GlobalMethodSecurityConfiguration { @Autowired @Qualifier("aclDaoAuthenticationProvider") private AuthenticationProvider aclDaoAuthenticationProvider; @Autowired @Qualifier("aclAnonymousAuthenticationProvider") private AnonymousAuthenticationProvider aclAnonymousAuthenticationProvider; @Autowired @Qualifier("aclexpressionHandler") private MethodSecurityexpressionHandler aclexpressionHandler; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(aclDaoAuthenticationProvider); auth.authenticationProvider(aclAnonymousAuthenticationProvider); } @Override public MethodSecurityexpressionHandler createexpressionHandler() { return aclexpressionHandler; }
}
也就是说
RootMethodSecurityConfiguration,将其粘贴到并
@EnableGlobalMethodSecurity从该类中删除注释。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)