java - jar 文件的 spring boot 父级

标签 java spring spring-boot jar

我想创建一个 jar 文件,我可以将其添加到类路径中,并且基本上“插入”到现有的 Spring Boot 应用程序中。我需要它能够具有 Component、ConfigurationProperties 的注释,以及 Spring Boot 为您提供的所有有趣的东西,但我希望它“薄”,并且它将是一个用作完整 Spring Boot Web 应用程序的一部分的 jar 文件。

我需要可以从外部配置 jar 文件。对于不同的部署,属性文件会有所不同。因此,拥有一个有效的 @Configuration 注释至关重要。

我查看了 spring-boot-starter-parent,它有 jetty、tomcat、hibernate 的东西,并且是一个巨大的 jar 文件。我不想这样。

有“瘦” parent 吗?

Spring Boot 根本不是我想要的吗?我应该只使用常规的 spring 项目并设置我的“主”spring boot web 应用程序来进行组件扫描来配置 jar 文件?

最佳答案

听起来您正在尝试定义自己的 Spring Boot Starter。这就是 Spring Boot 为您提供的真正力量,能够包含依赖项并使其自动配置自身。

通过以正确的方式打包 jar,Spring Boot 将自动检测是否存在配置、组件和属性文件。我过去曾在以下情况中使用过此方法:我希望所有应用程序都以特定方式进行日志记录,或者为我的 REST 端点强制执行某种格式。

The documentation非常全面地概述了您需要采取的步骤。但本质上,您将像其他任何 jar 一样打包您的 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... 注释集,它们确实可以帮助根据定义的属性、 Activity 的配置文件或加载的依赖项来控制哪些 Bean 处于 Activity 状态。

关于java - jar 文件的 spring boot 父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48068323/

相关文章:

java - 如何为 Servlet 3.0 配置 Spring Boot 1.2.0 并让 m2e 将 Eclipse Facet 设置为 3.0?

java - 具有多个 Action 监听器的多个按钮

java - C# 尝试从服务器获取 "get"

java - 使用反射实现 this.class 的正确方法

java - 在 MATLAB 中读取文件时指定数据类型

java - 无法获取连接,数据源无效 : "java.sql.SQLException: No suitable driver found for dataSource"

java - 扩展接口(interface)Repository并实现扩展接口(interface)时两个合格的bean出错

java - Struts2 和 Spring3 中的异常处理

java - 覆盖配置文件中的 maven 依赖范围

spring - 如何在Spring(Spring Boot)中将外部配置资源包含到类路径中?