我是一名 Spring 新手,正在从事一个基于 Spring 的大型项目,该项目在 Spring bean 之间具有广泛的耦合。我正在尝试编写一些集成测试来锻炼整个应用程序功能的子集。为此,我想覆盖一些自动装配。例如,假设我有一堂课
public class MyDataServiceImpl implements MyDataService {
@Qualifier("notNeededForMyDataServiceTest")
@Autowired
private NotNeededForMyDataServiceTest notNeededForMyDataServiceTest;
//...
}
和一个上下文文件:
<bean id="myDataService"
class="MyDataServiceImpl">
</bean>
在我的测试中,我不需要使用该notNeededForMyDataServiceTest
字段。有什么方法可以覆盖@Autowired
注释并设置notNeededForMyDataServiceTest
为 null,也许在 XML 文件中?我不想修改任何 Java 类,但我确实想避免notNeededForMyDataServiceTest
.
我试着做:
<bean id="myDataService"
class="MyDataServiceImpl">
<property name="notNeededForMyDataServiceTest"><null/></property>
</bean>
那是行不通的。IntelliJ 通知我“无法解析属性 'notNeededForMyDataServiceTest'”,显然是因为该字段没有 getter 和 setter。
我正在使用 Spring Framework 3.1.3。