所以我一直在为我的大多数bean使用3.2.0.RELEASE Spring XML配置,但现在我遇到了一个独特的情况,即Getters和Setter无法使用(糟糕的遗留代码 - 无法获取围绕它)。
因此,我想使用Spring @Configuration类和XML来解决这个问题。
但是,当我试图读取我的@Configuration类时,我得到“Class Not Found”异常。
引起:java.lang.ClassNotFoundException:v1.inventory.item.myJavaConfig
我失败的XML文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<bean class="v1.inventory.item.myJavaConfig"/>
</beans>
我的@Configuration类看起来像这样:
package v1.inventory.item;
@Configuration
@ImportResource("classpath:v1/inventory/item/baseItemConfigs.xml")
public class myJavaConfig {
@Autowired
@Qualifier("parentItem")
Item baseItem;
@Bean
public Item realItem(){
Item modifiedBean = baseItem;
modifiedBean.setManufacturer("Fake Setter for Manufacturer");
modifiedBean.setDesigner("Fake Setter for Designer");
return modifiedBean;
}
}
我需要通过ApplicationContext读取它,所以我需要确保找到这些bean。这是Spring 3.2.0.RELEASE的错误吗?还是我的代码?
为了记录,我最后拉入@Configuration(首先用XML扫描parentItem)。
答案 0 :(得分:0)
我在这里找到了问题。
似乎maven / spring(不确定哪个)没有在我的“资源”目录中查找该文件。只有我的“java”目录。当我将文件移动到“java”目录时,Spring发现文件很好。
传入JUnit的测试现在使用Maven编译器传递(在测试阶段抛出了上述错误)