我想创建一个jar文件,我可以将其添加到类路径中,基本上就是#34;插件"到现有的春季启动应用程序。我需要它能够注释Component,ConfigurationProperties以及spring boot为你提供的所有有趣的东西,但我想要它" thin"它将是一个jar文件,用作完整的Spring启动Web应用程序的一部分。
我需要jar文件可从外部配置。不同部署的属性文件将有所不同。因此,使用@Configuration注释非常重要。
我看看spring-boot-starter-parent,它有jetty,tomcat,hibernate等东西,是一个巨大的jar文件。我不想要那个。
是否有"瘦"家长吗?
春季靴子根本不是我想要的吗?我应该使用一个常规的弹簧项目并设置我的" Main" spring boot web app做组件扫描以配置jar文件?
答案 0 :(得分:2)
听起来您正在尝试定义自己的Spring Boot Starter。这就是Spring Boot为您提供的真正强大功能,包含依赖项并让它自动进行自我配置。
通过正确的方式打包jar,Spring Boot会自动检测到配置,组件和属性文件。我过去曾经使用过这种情况,我想让所有应用程序以特定方式记录,或者为我的REST端点强制执行某种格式。
The documentation详细介绍了您需要采取的步骤。但实质上,你打算像其他任何人一样打包jar(包括你的@Bean
,@Component
,@Service
和@Configuration
类,并提供属性文件指向配置:
// Example spring.factories file
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.mycorp.libx.autoconfigure.LibXAutoConfiguration,\
com.mycorp.libx.autoconfigure.LibXWebAutoConfiguration
同时查看@ConditionalOn
...注释集,它们可以真正帮助控制哪些bean根据定义的属性,正在激活的配置文件或正在加载的依赖项而变为活动状态。