【问题标题】:How to import Java-config class into XML-config so that both contexts have beans?如何将 Java-config 类导入 XML-config 以便两个上下文都有 bean?
【发布时间】:2012-10-26 15:03:01
【问题描述】:

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

【问题讨论】:

    标签: spring configuration


    【解决方案1】:

    这实际上非常简单。要将 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 的评论包含在答案中。

    【讨论】:

    • 旁注: 也必须存在于您的 XML 配置中,否则您的 javaconfig 将不会被包含。
    • 如果您已经在 XML 配置中定义了 ConfigurationPostProcessor,则不需要
    • 标签刚刚为你添加了所有的 springs PostProcessors。
    • 我们可以像处理另一个xml配置文件一样使用吗?
    • 请在回答中添加 Alan Franzoni 的提示 - 这很有帮助。
    【解决方案2】:

    除了annotation-config,您还可以使用component-scan。那么您不必在 XML 中包含配置 Bean:

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

    更多详情请见Difference between <context:annotation-config> vs <context:component-scan>

    【讨论】:

      【解决方案3】:

      应该在:

      spring-javaconfig-<version>.jar
      

      【讨论】:

      • 显然,spring-javaconfig jar 已停用。它应该在 3.0 版本中迁移到 Spring Core。
      猜你喜欢
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 2018-02-03
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多