具体来说,我希望能够通过实例化它们并包含它们来共享配置类。你通常会这样做的地方:
@Configuration
@Import({SharedConfiguration.class})
public class MyAppContext extends WebMvcConfigurerAdapter {
//stuff
}
@Configuration
@ComponentScan("com.example")
public class SharedConfiguration {
//stuff
}
我想这样做:
@Configuration
public class MyAppContext extends WebMvcConfigurerAdapter {
public SharedConfiguration sharedConfig(){
return new SharedConfiguration("com.example");
}
//stuff
}
@Configuration
public class SharedConfiguration {
public SharedConfiguration(String package){
//tell Spring to scan package
}
}
这样做的原因是我需要能够告诉共享组件执行扫描要查看的包。它将根据使用的项目而有所不同。
编辑:
为了提供一些额外的上下文,我正在尝试使用我们的外部配置提供程序来设置Hibernate和EHCache的通用配置,这可以使用多个项目。我当然愿意采用其他方法来做到这一点,但这对我来说似乎是最合乎逻辑的道路。我确信在Spring中有一些东西可以帮我说,“在这里!当Spring初始化你时,扫描这条路!”而不是将其硬编码为注释。