有一些方法,使@Resource可选?这意味着,如果我没有通过@Resource要求类型的豆,我不会例外,但它只是设置为null。你如何让@Resource是可选的?
回答
确定看起来是不可能的。必须使用@Autowired(必需= false)。不是我确切想要的,但它会做。
它使资源可选的,所以它是你想做的事,即使你不知道这个:) –
自动装配Autowired和资源是两个不同的东西,尝试注入
@DanubianSailor - '@ Autowired'是一个Spring注解,而'@ Resource'是一种常见的Java注释。如果你不使用Spring,那么'@ Autowired'甚至不是一个选项。 –
您应该能够使用自定义工厂bean来实现这一目标:
public class OptionalFactoryBean<T> implements BeanFactoryAware, FactoryBean<T> {
private String beanName;
public void setBeanName(String beanName) {
this.beanName = beanName;
}
@Override
public T getObject() throws Exception {
T result;
try {
result = beanFactory.getBean(beanName);
} catch (NoSuchBeanDefinitionException ex) {
result = null;
}
return result;
}
private BeanFactory beanFactory;
@Override
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
private Class<?> objectType = Object.class;
public void setObjectType(Class<?> objectType) {
this.objectType = objectType != null? objectType : Object.class;
}
@Override
public Class<?> getObjectType() {
return objectType;
}
@Override
public boolean isSingleton() {
return true;
}
}
您可选的bean Spring配置将是:
<bean id="myBean" class="mypackage.OptionalFactoryBean" scope="singleton">
<property name="beanName" value="myRealBean"/>
<property name="objectType" value="mypackage.MyRealBean"/>
</bean>
而且你会得到null
注入。然后你可以定义:
<bean id="myRealBean" class="mypackage.MyRealBean" ...>
<!-- .... -->
</bean>
如果你想注入一些特定的bean。
- 1. 是否有任何CustomView可以让你选择任何颜色
- 2. 你如何让你的java游戏可供其他人玩?
- 3. 你如何让PHP
- 4. 你如何让jQuery的
- 5. Java的:当你选择,让您的类不可变了可变
- 6. 如何让UITextView不可选?
- 7. 你如何让你每次点击
- 8. 你如何让Scite互动?
- 9. 你如何让开放形式成为唯一可选择的形式?
- 10. 如何让TableRow的子项可选
- 11. 你如何使厨师资源可选?
- 12. 你如何使用可选和非可选参数?
- 13. 你可以,如果是的话,你是如何设计WPF TextBlock的部分?
- 14. 你如何让你的提交登录按钮带你到你的PHP页面?
- 15. 你如何知道CA是否可信?
- 16. 你如何让NHibernate的在POCO
- 17. 如何让谷歌玩游戏可选?
- 18. 如何让log4net.dll成为可选项?
- 19. 如何让这个listview不可选?
- 20. 你试图让你的代码的功能如何?
- 21. 你是如何让ASP.NET输出UTF-16编码文本的?
- 22. 什么是可以让你写入字符串的Java特性?
- 23. 你如何让哈德森给予Maven -B构建选项?
- 24. 你如何让wordpress插件拥有“每帖”选项?
- 25. 你如何使某些Facebook权限,如user_friends,而不是可选的?
- 26. 你如何让你的WP7应用出现在游戏中心?
- 27. 你如何让Chrome开发者工具只显示你的console.log?
- 28. 你如何让别人相信你的代码并使用它?
- 29. 你如何让vim不重视你搜索的内容?
- 30. 如何让你在Github上可导入到Android工作室
看到这里http://stackoverflow.com/questions/3957430/optional-spring-bean-references.It可能对您有所帮助 – PSR
OK看起来是不可能的。必须使用@Autowired(必需= false)。不是我想要的究竟,但它会做 – MrProper