【问题标题】:How to load @Configuration classes from separate Jars如何从单独的 jar 中加载 @Configuration 类
【发布时间】:2015-05-16 07:29:22
【问题描述】:

我有一个 SpringBoot 主应用程序,以及一个单独的 Maven 模块项目,它编译为单独的 Jar。该模块有一个用@Configuration 注释的Spring 配置类,我想在主应用程序加载时加载它。

显然,这并不是开箱即用的(只需将模块包含到主应用程序中)。我还需要做什么才能让模块配置类也被主应用程序加载?

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    最简单的方法是扫描@Configuration类所在的包。

    @ComponentScan("com.acme.otherJar.config")
    

    或者只是将它作为一个 spring bean 加载:

     @Bean
     public MyConfig myConfig() {
         MyConfig myConfig = new MyConfig ();
         return myConfig;
     }
    

    MyConfig 类似于:

     @Configuration
     public class MyConfig {
         // various @Bean definitions ...
     }
    

    docs

    【讨论】:

    • 你好,Evgeni。我在我的 Application.java 类(它扩展了 SpringBootServletInitializer)中尝试了 @Bean 方法,但我的配置没有加载。
    • @Karna 你好,你应该问一个关于你的情况的问题,并在那里提供更多信息。干杯。
    • 嗨@Karna,我也尝试使用@Bean 方法加载它,但它不起作用。你成功了吗?
    【解决方案2】:

    @ComponentScan 注解将扫描所有带有@Compoment 或@Configuration 注解的类。

    然后spring ioc会将它们全部添加到spring控制的bean中。

    如果你只想添加特定的配置,你可以使用@import注解。

    示例:

    @Configuration
    @Import(NameOfTheConfigurationYouWantToImport.class)
    public class Config {
    
    }
    

    @Import Annotation Doc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 2011-12-02
      • 2012-05-14
      • 2020-02-20
      • 2020-06-08
      • 2010-10-02
      • 2015-01-04
      相关资源
      最近更新 更多