我是一位Spring新手,他正在开发一个基于Spring的大型项目,该项目在Spring bean之间有着广泛的联系。我正在尝试编写一些集成测试,以测试整个应用程序功能的子集。为此,我想重写一些自动装配。 例如,假设我有一个类如何覆盖Spring @Autowire注解并将字段设置为null?
public class MyDataServiceImpl implements MyDataService {
@Qualifier("notNeededForMyDataServiceTest")
@Autowired
private NotNeededForMyDataServiceTest notNeededForMyDataServiceTest;
//...
}
,并与上下文文件:
<bean id="myDataService"
class="MyDataServiceImpl">
</bean>
在我的测试,我没有必要使用notNeededForMyDataServiceTest
领域。有什么方法可以覆盖@Autowired
注释并将notNeededForMyDataServiceTest
设置为空,也许在XML文件中?我不想修改任何Java类,但我确实想避免notNeededForMyDataServiceTest
的(有问题的)配置。
我试着这样做:
<bean id="myDataService"
class="MyDataServiceImpl">
<property name="notNeededForMyDataServiceTest"><null/></property>
</bean>
这是行不通的。 IntelliJ通知我“无法解析属性notNeededForMyDataServiceTest'”,显然是因为该字段没有getter和setter。
我使用Spring框架3.1.3。
您是否尝试过: ,我认为这会给你一个字符串null,但你至少可以设置一个值 –
Jayz