Java 在spring单元测试中将null注入到autowired@Resource成员
我已经实现了一些使用。测试包括按名称自动连接的成员,例如Java 在spring单元测试中将null注入到autowired@Resource成员,java,spring,Java,Spring,我已经实现了一些使用。测试包括按名称自动连接的成员,例如 @Resource private FooBar myFooBar; 我将测试配置为能够使用前面提到的不同配置运行 某些配置不允许运行所有测试(例如,没有可用的数据库)。在这种情况下,我想跳过测试。我跳过测试的标准是myFooBar==null assumeTrue(myFooBar != null) 我面临着如何将null注入此成员的问题。我试过了 <bean id="myFooBar" class="FooBar">
@Resource
private FooBar myFooBar;
我将测试配置为能够使用前面提到的不同配置运行
某些配置不允许运行所有测试(例如,没有可用的数据库)。在这种情况下,我想跳过测试。我跳过测试的标准是myFooBar==null
assumeTrue(myFooBar != null)
我面临着如何将null
注入此成员的问题。我试过了
<bean id="myFooBar" class="FooBar">
<null />
</bean>
但这不起作用(发现以元素“null”开头的内容无效…)
如果我没有在我的context.xml中配置bean,我会得到一个NoSuchBeanDefinitionException
Spring向我的成员注入null
不会那么难,但对我来说确实很难:-)
我必须补充一点,我的FooBar
类没有默认构造函数
您知道如何注入null
,或者如何忽略自动连线测试类成员上缺少的bean定义吗
问候K.Claszen如果您要使用
@Autowired
按类型自动连线,而不是使用@Resource
按名称自动连线,则可以执行以下操作:
@Autowired(required = false)
private FooBar myFooBar;
设置required=false
将使Spring在无法解决此依赖项时忽略此依赖项,如下所示
您仍然可以通过使用@Autowired
使用@Qualifier
提供bean名称来使用名称自动关联:
@Autowired(required = false)
@Qualifier("myFooBar")
private FooBar myFooBar;
有关
@Qualifier
的更多信息,请参阅本页。如果您想使用@Autowired
按类型自动连线,而不是使用@Resource
按名称自动连线,则可以执行以下操作:
@Autowired(required = false)
private FooBar myFooBar;
设置required=false
将使Spring在无法解决此依赖项时忽略此依赖项,如下所示
您仍然可以通过使用@Autowired
使用@Qualifier
提供bean名称来使用名称自动关联:
@Autowired(required = false)
@Qualifier("myFooBar")
private FooBar myFooBar;
有关
@Qualifier
的更多信息,请参阅本页。请参阅@axtavt感谢我没有找到它+在链接位置为您发送1封邮件。请参阅@axtavt谢谢,我没有找到+1在链接位置为您准备。听起来真不错。他将于周二返回办公室。我会尽快给你反馈,非常适合我。谢谢听起来真不错。他将于周二返回办公室。我会尽快给你反馈,非常适合我。谢谢