我有一个项目需要将@Configuration java-config类引导到XML配置中。
为此,我正在阅读我还需要包含以下bean定义(以及使用@Configuration注释的类的bean定义)。
<bean class="org.springframework.config.java.process.ConfigurationPostProcessor" />
但是,我最终收到以下错误:
Caused by: java.lang.ClassNotFoundException: org.springframework.config.java.process.ConfigurationPostProcessor
我必须假设我在某处丢失了一个罐子,但我的各种网络搜索还没有得到答案。任何帮助将不胜感激。感谢。
编辑:显然,我正在阅读不再是最新的旧文档。让我备份。我的项目包含较旧的基于XML的配置。较新的代码全部使用'Java-config'。话虽如此,上下文显然是完全分开的。我想将一个java-config类'导入'到XML配置中,这样两个上下文都有那些特定的bean。有谁知道我怎么能这样做?
答案 0 :(得分:79)
这实际上最终变得相当简单。要将Java-config bean定义添加到xml-config中,只需将Java-config类定义为XML-config中的bean。没有额外的罐子。
@Configuration
public class SomeJavaConfig {
@bean
... [bean definition]
}
在XML-config中,您将此类定义为bean。
<!-- needed to pick up the annotated java-config -->
<context:annotation-config />
<!-- Importing java-config class, which are annotated with @Configuration -->
<bean name="SomeJavaConfig" class="[fully qualified path].SomeJavaConfig" />
XML-config可能是不同上下文的一部分,现在已经在JavaConfig类中定义了所有bean定义。
更新 - 在答案中包含Alan Franzoni的评论。
答案 1 :(得分:3)
除annotation-config
之外,您可以使用component-scan
。然后,您不必在XML中包含配置Bean:
<context:component-scan base-package="[fully qualified package path]" />
有关详细信息,请参阅Difference between <context:annotation-config> vs <context:component-scan>。
答案 2 :(得分:0)
应该在:
spring-javaconfig-<version>.jar