我正在尝试在组件中自动装配Optional。 对象在自定义ThreadScope和代理模式= INTERFACES。
我认为@Autowired Optional<ObjectType> objectTypeOptional
只是确保不需要自动装配。
现在objectTypeOptional.isPresnet()
总是返回true。因为有ObjectType的代理。有没有办法说objectTypeOptional不存在?
发布编辑(在问题中添加更多上下文):
我的豆子是这样的 -
@Component
public User {
private final userName;
private final userEmail;
// constructors and getters
}
现在我想在任何服务或控制器中注入可选用户。就像是 -
@Autowired Optional<User> userOptional;
因此,只要用户登录,过滤器/拦截器就会创建一个合适的User
对象。但是当没有用户登录时,我应该能够通过可选项进行检查 -
userOptional.isPresent()
答案 0 :(得分:1)
我相信提供商会更适合你。
你会自动装配
@Resource
Provider<UsersConnectionRepository> usersConnectionRepositoryProvider;
并在提供商
上设置方法或致电get()
private UsersConnectionRepository getUserConnectionRepository() {
return usersConnectionRepositoryProvider.get();
}
您也可以@Autowired(required = false)
。