当前位置: 首页 > news >正文

Spring Boot配置 application.yml,根据application.yml选择启动配置

在Spring Boot 中可以选择applicant.properties 作为配置文件,也可以通过在application.yml中进行配置,让Spring Boot根据你的选择进行加载启动配置文件。

这种配置方式,我们通常在实际开发中经常使用,主要为了发布版本和以及开发环境,本地环境,测试环境等不同环境使用不同的配置文件,这样就减少了我们经常去配置application.yml的相关具体配置,因为不同的配置文件里边的ip地址或者数据库的链接以及端口不同,干过开发的都知道,我们一般会将数据库的访问地址,账号,密码,Redis的访问地址等均放到application.yml文件中。

开始,我们在Spring Boot中创建一个启动类文件

@SpringBootApplication
public class Chapter12Application {public static void main(String[] args) {SpringApplication.run(Chapter12Application.class, args);}@RestControllerstatic class HelloController {//指定配置文件读取name并获得配置文件的值@Value("${name:}")private String name;//浏览器根据地址访问得到相关name@RequestMapping("/")public String index() {return name;}}
}

创建一个application.yml文件存放到src/resources,目录下:

# 默认激活dev配置,选择启动配置文件,实际上均采用active读取
spring:profiles:active: "test"---
# 指定的配置文件
spring:config:activate:on-profile: "dev"# 读取的name文件
name: dev.Miaow.Y.Hu.com
#启动端口号配置
server:port: 7745
---spring:config:activate:on-profile: "test"name: test.Miaow.Y.Hu.com
server:port: 7745
---spring:config:activate:on-profile: "prod"
server:port: 7745name: prod.Miaow.Y.Hu.com

Spring Boot 2.4 以后的配置

好,有了上边对application.yml的相关基础,接下来我们在一个application.yml进行相关配置,然后根据相关配置启动我们需要的配置文件,然后得到我们想要的name.

依旧是Spring Boot 的启动文件

@SpringBootApplication
public class Chapter13Application {public static void main(String[] args) {SpringApplication.run(Chapter13Application.class, args);}@Slf4j@RestControllerstatic class HelloController {@Value("${db:}")private String db;@Value("${mq:}")private String mq;@RequestMapping("/")public String index() {log.info("db:" + db);log.info("mq:" + mq);return db + "===" + mq;}}}

依旧是如此,我们可以在pom.xml先配置我们所需要的依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

接下来我们还是将重点放到我们的application.yml配置文件上:

# 2.4之前的配置
#spring:
#  profiles:
#    active: "dev"
#
#---
#spring.profiles: "dev"
#spring.profiles.include: "dev-db,dev-mq"
#
#---
#spring.profiles: "dev-db"
#
#db: dev-db.Miaow.Y.Hu.com
#
#---
#spring.profiles: "dev-mq"
#
#mq: dev-mq.Miaow.Y.Hu.com
#
#---#2.4之后的配置
# 默认激活dev配置
spring:profiles:# 更改指定的启动配置文件active: "dev" group:# 分组,只要你确定定义的别名满足条件,那么就适配"dev": "dev-db,dev-mq""prod": "prod-db,prod-mq"---
spring:config:activate:on-profile: "dev-db"db: dev-db.Miaow.Y.Hu.com---
spring:config:activate:on-profile: "dev-mq"mq: dev-mq.Miaow.Y.Hu.com---
spring:config:activate:on-profile: "prod-db"db: prod-db.Miaow.Y.Hu.com---
spring:config:activate:on-profile: "prod-mq"mq: prod-mq.Miaow.Y.Hu.com

由于我并未配置具体的端口号,故而系统将采用默认的端口号8080启动,其中我们通过端口号访问得到,因为我们默认采用dev进行启动,故而我们在浏览器上得到的就是dev开头的数据。

在这里插入图片描述
这是在浏览器打印的结果,在控制台我们也可以看到相关打印的结果:
在这里插入图片描述
同理,我们也可以利用application.yml的特性,来完成我们所需要的功能。
例如:

@RestController
public class HelloController {@Value("${com.Miaow.Y.Hu.from}")public String from;@RequestMapping("/hello")public String index() {return "Hello World";}@RequestMapping("/demo")public String didi(){System.out.println(from);return from;}
}

application.properties

com.Miaow.Y.Hu.from=miaow

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/205224.html

相关文章:

  • 一文了解GC垃圾回收
  • 触摸屏与施耐德PLC之间MODBUS无线通讯
  • BOA服务器(一):简介
  • 最详细STM32,cubeMX 超声波测距
  • Java实现连接SQL Server解决方案及代码
  • 如何用 JMeter 编写性能测试脚本?
  • vue3+vite在线预览pdf
  • Python深度学习实战-基于Sequential方法搭建BP神经网络实现分类任务(附源码和实现效果)
  • 【前端】Webpack5中Html和CSS的压缩打包
  • postman接收后端返回的文件流并自动下载
  • 谈谈Net-SNMP软件
  • 前端对普通数字数组排序示例
  • SQL server中:常见问题汇总(如:修改表时不允许修改表结构、将截断字符串或二进制数据等)
  • 无线通信中CSI的含义
  • 如何一键核实验证身份证的真伪?
  • 冒泡排序:了解原理与实现
  • springboot maven项目环境搭建idea
  • vue3检测是手机还是pc端,监测视图窗口变化
  • B - Magical Subsequence (CCPC2021哈尔滨)
  • Leetcode刷题详解——x的平方根
  • windows安装docker,解决require wsl 2问题
  • 建立复数类
  • docker部署prometheus+grafana服务器监控(三) - 配置grafana
  • 面试题:说一下加密后的数据如何进行模糊查询?
  • LeetCode75——Day15
  • Qwt开发环境搭建(保姆级教程)
  • 【供应链】仓储、物流、车辆管理
  • 从另外一个进程中读取数据
  • 【FPGA零基础学习之旅#17】搭建串口收发与储存双口RAM系统
  • 建立Line类