前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~
今日话题
基于 Spring Boot 实现开发环境和生产环境切换,完成热更新集成~
作者:云层上的光
时间:2024年7月15日 13时42分14秒
主线任务
一、项目创建
1、点击 “新建项目”,创建项目用来演示 Spring Boot 环境变量
2、选择依赖,完成项目创建~
- Spring Web
- Spring Boot DevTools
3、实现一个 Get 请求,用于验证生产环境和开发环境切换
4、启动项目,浏览器访问:http://localhost:8080/local/test
二、项目环境切换
1、resources 软件包下修改 application.properties 文件为 applocation.yml 文件
2、resources 软件包下新建 application-dev.yml 文件
3、resources 软件包下新建 application-prod.yml 文件
4、修改 resources 软件包下 applocation.yml 文件
代码如下:
# spring boot 相关配置
spring:
# 配置
application:
# 名称
name: demo-local
# 环境切换
profiles:
# 当前为 dev 环境, 指向的是 application-dev.yml 文件
active: dev
5、改造 resources 软件包下 application-dev.yml 文件
代码如下:
# 服务
server:
# spring boot 默认端口 8080
port: 8080
6、改造 resources 软件包下 application-prod.yml 文件
代码如下:
# 服务
server:
# spring boot 默认端口 8080 当前环境是 prod 端口监听8081
port: 8081
7、重启项目,测试开发环境是否正常
8、修改 resources 软件包下 applocation.yml 文件
9、测试生产环境是否正常:http://localhost:8081/local/test
10、浏览器访问
三、@Value 读取 yml 配置
1、修改 controller 软件包中 LocalController 文件
代码如下:
package com.chuxin.demolocal.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;
@RestController
@RequestMapping("/local")
public class LocalController {
@Value("${spring.profiles.active}")
private String name;
@GetMapping("/test")
public String test() {
return "项目现在的环境是: " + name;
}
}
2、浏览器访问:http://localhost:8081/local/test
总结:使用 @Value 注解可以直接获取到 yml 文件值,以后可以根据业务 新建不同 Config 文件读取配置文件然后其他类再读取这些 Config 配置类
支线任务
一、为什么可以是yml,不应该是 yaml 文件嘛?
yaml 文件格式为后缀的文件可以简写为 yml 不需要 a
1、以前端 html 格式文件举例举例,index.html 也可以写成 index.htm 可以不用写全~
二、application.yml 文件作用
application.yml 的作用相当于前端 .env 文件
application-dev 和 application-prod 就相当于 .env.dev 和 .env.prod 等等(这里只列举了生产和开发)
以前端举例,在 resources/static 软件包下新建一个 Vue 项目
三、代码热更新,但是很卡
安装 Spring Boot DevTools 之后无需任何修改,本次测试是否
1、修改 controller 软件包中 LocalController 文件
代码如下:
package com.chuxin.demolocal.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;
@RestController
@RequestMapping("/local")
public class LocalController {
@Value("${spring.profiles.active}")
private String name;
@GetMapping("/test")
public String test() {
return "项目环境: " + name;
}
}
2、浏览器访问:http://localhost:8081/local/test
总结:和前端一样有热更新,但是开启之后也太卡了~
代码仓库
往期内容
点击链接查看:www.yuque.com/chuxin-cs/c…
转载自:https://juejin.cn/post/7391699541971124233