我正在尝试将spring,non-boot应用程序迁移到启动应用程序。当前的一个构建一个war文件。遵循these说明,我正在完成迁移步骤。
我发现@SpringBootApplication注释强迫很多事情失败。例如,当我确实需要现有的xml安全配置保持不变时,它会尝试自动配置安全性。我发现我可以覆盖@EnableAutoConfiguration并排除配置类(.i.e.SecurityAutoConfiguration.class)。但我发现它对我已经在我的类路径上的项目做了很多。我决定最好删除@SpringBootApplication并将其替换为@Configuration,@ ComponentScan和@ImportResource以加载我的原始上下文xml。该类扩展了SpringBootServletInitializer,以便我可以注册我的自定义servlet和过滤器。
我发现,它现在不再知道加载application.yml或bootstrap.yml。是什么触发了这些文件的自动配置?我是否会回退加载传统的属性占位符配置器?我希望避免这种情况,因为下一步是将其连接到spring cloud config以集中管理应用程序配置。
答案 0 :(得分:10)
@SpringBootApplication
是@Configuration
,@EnableAutoConfiguration
和@ComponentScan
的替代方案。
您可能希望使用@Configuration
+ @ComponentScan
。如果需要加载xml配置,可以使用:@ImportResource
注释。
如果您想使用自动配置,但您可以禁用一些自动配置,例如:
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
详细说明: