自动装配Spring 4.1

时间:2015-07-18 05:12:20

标签: spring spring-mvc dependency-injection ioc-container

我正在尝试在组件中自动装配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()

1 个答案:

答案 0 :(得分:1)

我相信提供商会更适合你。

Java Docs

你会自动装配

@Resource
Provider<UsersConnectionRepository> usersConnectionRepositoryProvider;

并在提供商

上设置方法或致电get()
private UsersConnectionRepository getUserConnectionRepository() {
    return usersConnectionRepositoryProvider.get();
  }

您也可以@Autowired(required = false)