我想在此类中使用该存储库,但是当我放置像 @Component 这样的构造型时,我从 IDE 收到错误:
无法自动装配。未找到“身份验证”类型的 bean。
public class CustomMethodSecurityExpressionRoot extends SecurityExpressionRoot implements MethodSecurityExpressionOperations {
@Autowired
private FlatRepository flatRepository;
public CustomMethodSecurityExpressionRoot(Authentication authentication) {
super(authentication);
}
}
你不能@Autowire
里面一个SecurityExpressionRoot
.
但是,您可以手动提供FlatRepository
依赖性。
当您在内部配置安全对象时@Configuration
类,你可以@Autowire
您需要的任何实例。
只需为新的依赖项腾出空间CustomMethodSecurityExpressionRoot
构造函数
class CustomMethodSecurityExpressionRoot extends SecurityExpressionRoot
implements MethodSecurityExpressionOperations {
private final FlatRepository flatRepository;
CustomMethodSecurityExpressionRoot(
final Authentication authentication,
final FlatRepository flatRepository) {
super(authentication);
this.flatRepository = flatRepository;
}
...
}
并在实例化点手动注入
final SecurityExpressionRoot root = new CustomMethodSecurityExpressionRoot(authentication, flatRepository);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)