51

我有一个项目,我需要将 @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。有谁知道我该怎么做?

4

3 回答 3

99

这实际上最终变得相当简单。要将 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 的评论。

于 2013-01-09T20:12:59.520 回答
7

或者,annotation-config您可以使用component-scan. 那么您不必在 XML 中包含配置 Bean:

<context:component-scan base-package="[fully qualified package path]" />

有关详细信息,请参阅<context:annotation-config> 与 <context:component-scan> 之间的差异

于 2018-05-30T10:54:41.587 回答
-1

应该在:

spring-javaconfig-<version>.jar
于 2012-11-06T16:21:08.597 回答