以编程方式配置Spring Boot应用程序

时间:2016-10-14 22:55:24

标签: spring spring-boot

什么是最简单的方法来获得弹簧启动的好处但不尝试自动配置所有的东西?例如,要仅使用我们已经配置的属性运行flyway(一些通过Consul + Spring Cloud加载),我希望我可以做类似的事情:

@Configuration
@Import({DataSourceAutoConfiguration.class, FlywayAutoConfiguration.class})
public class FlywaySetup {}

并使用main方法调用SpringApplication.run(FlywaySetup.class)

这个问题是它获取了所有组件扫描/其他依赖项的疯狂长列表。任何方式专门配置依赖项(但仍然获得框架的优势)

2 个答案:

答案 0 :(得分:1)

如果您运行此应用程序,则根本不应使用组件扫描。除了@ComponentScan之外,没有什么可以在春季启动时触发组件扫描(@SpringBootApplication上可用)。

如果您能够提供更准确的详细信息而不是“疯狂的其他依赖项列表”,那将会有所帮助。运行FlywaySetup应该只加载那两个配置类(重要的是:这些不再作为自动配置处理)。如果您有分量扫描,那么您还没有显示其他内容。

答案 1 :(得分:0)

您可以排除不需要的自动配置。

您可能需要查看this SO answer以探索如何执行此操作的机制。