如何在Spring Boot应用程序中使用配置文件

你好朋友,

在本教程中,我们将学习如何在Spring Boot应用程序中使用配置文件。

Spring Boot应用程序

我们将在本教程中讨论以下几点:

1.什么是Spring Boot Profile,为什么我们需要分析

2.如何使用示例在Spring Boot中进行性能分析 3.如何设置/更改默认配置文件
1.什么是Spring Boot Profile,为什么我们需要分析
假设您正在使用Spring Boot应用程序。您已经通过连接到计算机上安装的本地数据库在计算机上对应用程序进行了本地测试。现在,您想将此应用程序部署在DEV环境中,并且在其中也有DEV数据库服务器你有你的数据库。

现在,在本地测试应用程序时,在您的application.properties文件中,您将在数据库url,用户名,密码等详细信息中找到详细信息,这些信息是针对计算机上安装的本地数据库的,但是一旦移至DEV环境,您便希望您的应用程序与DEV数据库而不是本地数据库对话。

因此,您可以做的是,可以更改application.properties文件,其中包含连接到DEV数据库所需的详细信息,提交代码并将其部署在DEV上,但是现在的问题是此代码可以很好地与DEV数据库连接,但是当您尝试从本地执行此代码时,它将无法工作,因为您已将数据库详细信息更改为DEV数据库。

因此,再次使其在您的本地计算机上运行,​​您将必须在本地和执行应用程序所需的application.properties中进行更改。

如您所见,在本地和DEV之间进行混洗有很多麻烦。

现在想象一下,您拥有更多的环境,例如ST,ET(QA),PROD,并且必须一直手动进行更改,这将是一场噩梦。

那么解决方案是什么?

抢救中的Spring Boot配置文件!

Spring Boot使您可以外部化应用程序配置,以便无需更改即可在不同环境中使用相同的应用程序代码。

Spring Boot Profiles允许您针对每个环境配置多个application.properties文件,这样当您在本地时,它将使用本地属性文件,当您在DEV时,它将使用DEV属性文件,依此类推,而无需将其作为程序员需要对代码进行任何显式更改。

因此,通常来说,如果某些应用程序属性随环境而变化,则可以在Spring Profiles的帮助下进行处理。

看起来很酷。 是不是:)

2.如何使用示例在Spring Boot中进行性能分析

2.1按照我的帖子如何使用Spring Initializer创建Spring Boot项目并创建名称为“ Springbootprofiles”的Spring Boot项目。仅添加Web依赖项,因为这足以进行我们的测试。

2.2在由Spring intializer自动创建的应用程序.properties文件中,添加以下行:
application.environment =这是本地环境

2.3通过单击项目并选择运行方式->运行配置->运行来运行应用程序

2.4检查Spring Boot生成的控制台日志

您将在日志中看到以下行

2019-07-07 20:00:52.147信息15560 — [main] cbjsSpringbootprofilesApplication:未设置活动配置文件,回退到默认配置文件:默认

基本上,这表明我们尚未显式设置任何配置文件,因此Spring Boot使用默认配置文件,换句话说,Spring Boot使用application.properties文件中的配置。

我们如何检查呢?

让我们看看下一步。

2.5创建名为ProfileController.java的控制器,如下所示:

package com.blogspot.javasolutionsguide.springbootprofiles.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author javaSolutionsGuide**/
@RequestMapping("/v1")
@RestController
public class ProfileController {@Value("${application.environment}")private String applicationEnv;@GetMappingpublic String getApplicationEnv() {return applicationEnv;}}

在这里,基本上,我们想要做的是,我们尝试使用@Value注释访问控制器中application.properties文件中定义的application.environment属性,这样当我们从浏览器中访问此资源uri时,我们应该“这是一个本地环境”。

2.6让我们通过单击项目并选择Run as-> Run Configurations-> Run再次启动应用程序,然后实际访问资源URI(
http:// localhost:8080 / v1 ),看看是否从application.properties文件返回了期望的值。

因此,它正在按预期工作。

总结:当我们在spring boot应用程序中未设置任何配置文件时,默认情况下它将选择默认配置文件,该文件就是default application.properties文件。

注意:如果需要,您也可以将默认配置文件更改为其他属性文件。我们将在本教程的后面看到。
2.7现在,说您想将代码部署到DEV环境,以便当应用程序在DEV上运行时希望您的应用程序选择DEV特定的属性,而在本地运行时希望您的应用程序选择LOCAL环境的特定属性。

为此,我们需要做的是创建另一个名为application-dev.properties的属性文件。通常的命名约定是application- {profile name} .properties'

配置文件名称通常是环境名称,但可以是任何文本。

2.8让我们在application-dev.properties文件中添加以下行
application.environment =这是一个开发环境

2.9现在,如何告诉应用程序使用dev配置文件而不是默认配置文件。

为此,我们需要设置“ spring.profiles.active”环境变量,如下所示:

spring.profiles.active =开发

要进行设置,请右键单击项目,选择运行方式->运行配置->环境->新建->将名称添加为spring.profiles.active,将值添加为dev->单击确定->运行

2.10如果您现在要检查日志,则会在日志中找到以下行:

2019-07-07 20:22:08.557 INFO 17172 — [main] cbjsSpringbootprofilesApplication:以下配置文件处于活动状态:dev

这表明开发人员配置文件现在处于活动状态。

2.11让我们进行实际测试,看看我们的控制器是否从application-dev.properties中选择了值

2.12点击资源URI http:// localhost:8080 / v1 ),然后在浏览器中查看结果

很显然,该时间值已从application-dev.properties文件中选取。

总结:我们的Spring Boot应用程序中可以为n个环境使用n个属性文件,这些文件将具有特定于该环境的配置。要在相应环境中使用属性文件,我们要做的就是设置spring.profiles该环境的.active属性和spring boot将选择各自的属性文件。

3.如何设置/更改默认配置文件

正如我们在上面看到的那样,默认情况下,spring boot选择默认配置文件,这意味着它选择了application.properties文件。如果相反,我们想将dev用作我们的默认配置文件。

在这种情况下,您需要做的就是删除spring.profiles.active并将spring.profiles.default属性设置为我们要在Eclipse中将其设置为默认配置文件作为环境变量的配置文件。

spring.profiles.default =开发

现在,如果您要重新运行您的应用程序,您将在控制台日志中看到以下行:

2019-07-07 20:35:23.587 INFO 16832 — [main] cbjsSpringbootprofilesApplication:未设置活动配置文件,回退到默认配置文件:dev

因此,从上面的日志中可以明显看出,dev现在被视为默认配置文件。

我们可以通过点击资源URI( http:// localhost:8080 / v1 )进一步进行验证

总结:如果我们没有将任何配置文件设置为默认配置文件,则默认情况下,spring boot将从application.properties文件中选择配置。如果要将其他环境配置设为默认配置,则可以将spring.profiles.default属性设置为那个环境

即使未设置spring.profiles.active,Spring Boot也会选择该特定于环境的属性 感谢您的阅读。请与他人分享,您认为这可能会有所帮助。

翻译自: https://www.javacodegeeks.com/2019/07/profiles-spring-boot-application.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光纤收发器常见故障问题的时候我们该如何解决呢

当我们在使用光纤收发器的时候,难免会遇到一些问题,当遇到这些常见故障问题的时候我们该如何解决呢?接下来就由飞畅科技的小编来为大家详细介绍下光纤收发器常见故障问题排查方法,一起来看看吧! 一、整体故障排查法 1…

【渝粤教育】国家开放大学2018年秋季 3818-22T燃气工程施工 参考试题

试卷代号:3912 汽车底盘构造与维修试题答案及评分标准 (供参考) 2019年1月 一、单项选择题(下列各题的备选答案中,只有一个选项是正确的,请把正确答案的序号填写在括号内。15小题,每小题2分&am…

【渝粤教育】国家开放大学2018年秋季 8180-21T (1)畜禽生产概论 参考试题

试卷代号:8184 座位号 2018-2019学年度第一学期期末考试 护理伦理学 试题 2019年1月一、名词解释:(每题5分,共20分) 1.护理伦理学 2.护理道德情感 3.安乐死 4.慎独 二、选择题:(每小题3分&a…

光纤收发器的AB端可随便连接吗?

对于光纤收发器而言,收发器的主要作用是延长网络传输距离,可在一定程度上缓解了网线无法远距离传输的缺陷,为最后一公里传输带来了便捷,但是对于刚接触收发器的人来说会犯一些最为常见的错误,如光纤收发器的发射端与接…

【渝粤教育】国家开放大学2019年春季 0408-22T管理学基础 参考试题

科目编号:0408 管理学基础 试题 2019年7月 单项选择:(每小题3分,共计30分) 1.管理的首要职能是( )。 A.计划 B.控制 C.协调 D.指挥 2.人们常说“…

变异测试 java_编码的喜悦……以及Java中的变异测试

变异测试 java多年以来,为源代码编写单元测试一直是一种好习惯。 并且还可以使用测试覆盖率报告来查看测试覆盖了多少代码。 尽管行分支覆盖率报告非常有用,但是它并不能告诉您单元测试的实际效果。 因此,甚至在测试中没有一个断言的情况下&a…

【渝粤教育】国家开放大学2019年春季 1009离散数学(本) 参考试题

试卷代号:1009 2019年春季学期期末统一考试 离散数学(本)试题(半开卷) 2019年7月 一、单项选择题(每小题3分,本题共15分) 1.若集合A{1,2,3),则下列表述正确的…

光纤收发器的安装

光纤收发器分为单模光纤收发器和多模光纤收发器两种,同时根据光纤接头的不同,又可分为SC接头光纤收发器和ST接头光纤收发器。那么,光纤收发器安装和使用注意事项有哪些呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧&#…

【渝粤教育】国家开放大学2019年春季 1158现代教育原理 参考试题

试卷代号:1158 2019年春季学期期末统一考试 现代教育原理试题 2019年7月 一、选择题(每小题只有一个正确答案,请选择正确的标号并填写在题后括号内。每小题5分,共30分) 1.教育活动的基本要素不包括( )。 A.教育者 B.受…

JSON和XML:它们如何比较?

JSON和XML:它们如何比较? JSON和XML是两种人类可读的文本格式,多年来已成为竞争对手。 XML的目的是通过可选使用模式来存储和定义文档和数据。 JSON几乎与之完全相反-序列化格式的要求非常简单,可以放在信用卡背面。 但是&#xf…

光纤收发器故障导致不能上网该如何解决?

光纤收发器的作用就是光信号和电信号之间的相互转换,其过程大概为:把电信号转换为光信号,通过光纤传送出去,在另一端再把光信号转化为电信号,再接入路由器、交换机等等设备。但是,光纤收发器在使用过程中难…

【渝粤教育】国家开放大学2019年春季 1332中文学科论文写作 参考试题

试卷代号:1332 中文学科论文写作 试题(开卷) 2019年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试 结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考…

【渝粤教育】国家开放大学2019年春季 2110行政法与行政诉讼法 参考试题

试卷代号:21 10 行政法与行政诉讼法 试题 2019年7月 一、选择题(共20分) (一)单项选择题(每小题只有一项答案正确,请将正确答案的序号填在括号内。每小题1分,共10分) 1.行…

【渝粤教育】国家开放大学2019年春季 2507学前儿童艺术教育(音乐) 参考试题

试卷代号:2507 2 0 1 9年春季学期期末统一考试 学前儿童艺术教育(音乐) 试题 2019年7月 一、填空题(每空1分,共10分) 1.节奏的两个方面是拍子、。 2.音乐的句法因素是、和声、节奏。…

spring发邮件_跟踪异常–第4部分– Spring的邮件发件人

spring发邮件如果您阅读过本系列以前的任何博客,您可能会记得我正在开发一个小型但几乎具有工业实力的应用程序,该应用程序在日志文件中搜索异常。 您可能还记得,我现在有一个可以包含大量结果的类,这些结果需要发送给感兴趣的任何…

光纤收发器分发射和接收吗?光纤收发器配对使用问题详解!

光纤收发器是光口与电口之间的转换,是网口通过光纤来延伸的一种设备,光纤收发器作为光电转换设备一般是成对使用,但也可以出现光纤收发器与光纤交换机、光纤收发器与SFP收发器配对使用也是可以的,原则上只要光传输波长是一样的、信…

【渝粤教育】国家开放大学2019年春季 2773特种动物养殖 参考试题

试卷代号:2773 特种动物养殖试题 2019年7月 一、单项选择题(共15分,每题3分) 1.母兔有一对完全独立的子宫,属( )类型。 A.双角子宫 B.单子宫 C.双子宫 D.双分…

【渝粤教育】国家开放大学2019年春季 4有机合成单元反应 参考试题

科目编号:0004 座位号: 2018-2019学年度第二学期期末考试 有机合成单元反应试题 2019年7月 一、选择题(每小题3分,共45分) 1、分子结构中具有( )官能团的有机化合物,通常称之为羧酸。 A&…

光纤收发器元器件指标详情

在以太网光纤收发器设计中,元器件的选择举足轻重,它决定了产品的性能、寿命和成本。光电介质转换芯片(OEMC)是整个收发器的核心。选择介质转换芯片是以太网光纤收发器设计的第一步,也是非常重要的一步。它的选择直接影响和决定了其它元器件的…

【渝粤教育】国家开放大学2019年春季 771初级会计实务(二) 参考试题

科目编号:[0771] 座位号 2018-2019学年度第二学期期末考试 初级会计实务(二) 试题 2019年 7 月 一、单选题(本大题共10小题,每小题3分,共计30分) (★请考生务必将答案填入到下面对应…