在这篇文章中,我将讨论如何在 Spring Boot 应用程序中使用外部化配置。
十载的芦溪网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整芦溪建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“芦溪网站设计”,“芦溪网站推广”以来,每个客户项目都认真落实执行。
我们将使用 Spring Boot 的默认设置来创建一些配置并在我们的应用程序中读取它们。我们还将研究一种设置属性和基于 YAML 的配置的简单键值方式。
我更喜欢使用 YAML,从现在开始,我将只使用 YAML 基础设置。
在我的实现运行期间,我注意到我最终需要使用。
spring-boot-configuration-processor 依赖项。否则我会得到一个错误,并且代码不会编译。我没有找到太多关于为什么在我的研究中需要这样做,但是添加这个依赖项为我解决了这个问题。
我添加的第二个依赖项是 Actuator,它为我们提供了一些令人兴奋的工具。这是不必要的,但如果您正在寻找调试属性并找到更多可使用的配置,我建议您也添加它。
<依赖>
org.springframework.boot
spring-boot-configuration-processor
<可选>真可选>
依赖>
<依赖>
org.springframework.boot
spring-boot-starter-actuator
依赖>
以下代码适用于 application.properties 文件,这是您将在 Spring Boot 中获得的默认格式。
# 这是为了暴露Actuator的所有端点。仅在 DEV 中对所有人使用 *
management.endpoints.web.exposure.include=*
# Custom Properties
bungie.rootPath="https://www.bungie.net/Platform"
bungie.apiKey=000999888111
以下是 YAML 格式的相同属性。
bungie:
rootPath: "https://www.bungie.net/Platform"
apiKey: 000999888111
现在我们已经创建了属性,在读取属性时我们需要考虑 2 个用例。
package io.howtoarchitect.destinyclanwars.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties("bungie")
@Getter @Setter
public class BungieClientSettings {
private String rootPath;
private String apiKey;
}
如果你观察上面的代码块,你会注意到一些事情:
完成此设置后,最后一步是在我们的应用程序中读取这些属性。我们将在另一个 Spring bean/service 中读取这些属性。
package io.howtoarchitect.destinyclanwars.bungieclient;
import io.howtoarchitect.destinyclanwars.config.BungieClientSettings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
@Service
public class BungieClient {
private static WebClient client;
@Autowired
private BungieClientSettings bungieClientSettings;
public WebClient getDefaultClient() {
client = WebClient.builder()
.baseUrl(bungieClientSettings.getRootPath())
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.defaultHeader("X-API-KEY", bungieClientSettings.getApiKey())
.build();
return client;
}
}
您会注意到我已将其添加BungieClientSettings为@Autowired依赖项。这会在我的类中注入 bean,当我需要访问这些属性时,我需要做的就是bungieClientSettings.getAPIKey()和bungieClientSettings.getRootPath()。
这就是您需要做的就是将您的属性外部化。尽早设置这一点很重要,因为如果不这样做,您最终会将其中许多分散在课堂上,并且迁移到多个环境将变得困难。
网站名称:教你如何在SpringBOOT中处理配置
标题网址:http://www.shufengxianlan.com/qtweb/news24/81474.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联