【发布时间】:2015-05-16 07:29:22
【问题描述】:
我有一个 SpringBoot 主应用程序,以及一个单独的 Maven 模块项目,它编译为单独的 Jar。该模块有一个用@Configuration 注释的Spring 配置类,我想在主应用程序加载时加载它。
显然,这并不是开箱即用的(只需将模块包含到主应用程序中)。我还需要做什么才能让模块配置类也被主应用程序加载?
【问题讨论】:
标签: java spring spring-boot
我有一个 SpringBoot 主应用程序,以及一个单独的 Maven 模块项目,它编译为单独的 Jar。该模块有一个用@Configuration 注释的Spring 配置类,我想在主应用程序加载时加载它。
显然,这并不是开箱即用的(只需将模块包含到主应用程序中)。我还需要做什么才能让模块配置类也被主应用程序加载?
【问题讨论】:
标签: java spring spring-boot
最简单的方法是扫描@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
【讨论】:
@Bean 方法加载它,但它不起作用。你成功了吗?
@ComponentScan 注解将扫描所有带有@Compoment 或@Configuration 注解的类。
然后spring ioc会将它们全部添加到spring控制的bean中。
如果你只想添加特定的配置,你可以使用@import注解。
示例:
@Configuration
@Import(NameOfTheConfigurationYouWantToImport.class)
public class Config {
}
【讨论】: