likes
comments
collection
share

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

作者站长头像
站长
· 阅读数 18

今日话题

基于 Spring Boot 实现开发环境和生产环境切换,完成热更新集成~

作者:云层上的光

时间:2024年7月15日 13时42分14秒

主线任务

一、项目创建

1、点击 “新建项目”,创建项目用来演示 Spring Boot 环境变量

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

2、选择依赖,完成项目创建~

  1. Spring Web
  2. Spring Boot DevTools

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

3、实现一个 Get 请求,用于验证生产环境和开发环境切换

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

4、启动项目,浏览器访问:http://localhost:8080/local/test

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

二、项目环境切换

1、resources 软件包下修改 application.properties 文件为 applocation.yml 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

2、resources 软件包下新建 application-dev.yml 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

3、resources 软件包下新建 application-prod.yml 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

4、修改 resources 软件包下 applocation.yml 文件前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

代码如下:

# spring boot 相关配置
spring:
  # 配置
  application:
    # 名称
    name: demo-local
  # 环境切换
  profiles:
    # 当前为 dev 环境, 指向的是 application-dev.yml 文件
    active: dev

5、改造 resources 软件包下 application-dev.yml 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

代码如下:

# 服务
server:
  # spring boot 默认端口 8080
  port: 8080

6、改造 resources 软件包下 application-prod.yml 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

代码如下:

# 服务
server:
  # spring boot 默认端口 8080 当前环境是 prod 端口监听8081
  port: 8081

7、重启项目,测试开发环境是否正常

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

8、修改 resources 软件包下 applocation.yml 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

9、测试生产环境是否正常:http://localhost:8081/local/test

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

10、浏览器访问

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

三、@Value 读取 yml 配置

1、修改 controller 软件包中 LocalController 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

代码如下:

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

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

总结:使用 @Value 注解可以直接获取到 yml 文件值,以后可以根据业务 新建不同 Config 文件读取配置文件然后其他类再读取这些 Config 配置类

支线任务

一、为什么可以是yml,不应该是 yaml 文件嘛?

yaml 文件格式为后缀的文件可以简写为 yml 不需要 a

1、以前端 html 格式文件举例举例,index.html 也可以写成 index.htm 可以不用写全~

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

二、application.yml 文件作用

application.yml 的作用相当于前端 .env 文件

application-dev 和 application-prod 就相当于 .env.dev 和 .env.prod 等等(这里只列举了生产和开发)

以前端举例,在 resources/static 软件包下新建一个 Vue 项目

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

三、代码热更新,但是很卡

安装 Spring Boot DevTools 之后无需任何修改,本次测试是否

1、修改 controller 软件包中 LocalController 文件

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

代码如下:

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

前端开发 Spring Boot 入门指南:Spring Boot 环境变量 + 代码热更新~

总结:和前端一样有热更新,但是开启之后也太卡了~

代码仓库

github.com/chuxin-cs/s…

往期内容

点击链接查看:www.yuque.com/chuxin-cs/c…

转载自:https://juejin.cn/post/7391699541971124233
评论
请登录