spring boot 15

一、SpringBoot 项目部署流程

1. 项目打包

SpringBoot 项目通过 spring-boot-maven-plugin 插件打包成可执行 JAR 包:

xml

复制代码
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>3.1.3</version>
</plugin>
  • 执行 mvn package 后,会在 target 目录生成可直接运行的 JAR 包(如 big-event-1.0-SNAPSHOT.jar

2. 运行 JAR 包

使用 java -jar 命令运行:

bash

运行

复制代码
java -jar big-event-1.0-SNAPSHOT.jar
  • 运行后,SpringBoot 会自动启动内嵌的 Tomcat 服务器,默认端口为 8080

二、配置文件方式(项目内配置)

1. application.properties

键值对格式,示例:

properties

复制代码
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/test

2. application.yml

YAML 缩进格式,层级更清晰,示例:

yaml

复制代码
server:
  port: 8082
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test

三、外部配置方式(运行时修改配置)

1. 命令行参数方式

通过 --键=值 的形式,在运行 JAR 包时直接修改配置,优先级最高

bash

运行

复制代码
# 修改服务端口为 9999
java -jar big-event-1.0-SNAPSHOT.jar --server.port=9999

# 同时修改多个配置
java -jar big-event-1.0-SNAPSHOT.jar --server.port=9999 --spring.profiles.active=prod
  • 示例中,控制台日志会显示 Tomcat initialized with port(s): 9999,说明配置生效

2. 环境变量方式

通过操作系统环境变量修改配置:

  1. 在 Windows 系统中,新建用户变量 server.port,值为 8888
  2. 运行 JAR 包时,SpringBoot 会自动读取该环境变量,端口会变为 8888

3. 外部配置文件方式

在 JAR 包所在目录下,新建 application.yml 文件,配置优先级高于 JAR 包内的配置:

yaml

复制代码
# 外部 application.yml
server:
  port: 7777
  • 运行时,SpringBoot 会优先加载 JAR 包所在目录下的 application.yml,端口会变为 7777

四、配置优先级(从低到高)

SpringBoot 会按以下顺序加载配置,后面的配置会覆盖前面的:

  1. 项目中 resources 目录下的 application.yml:默认配置,优先级最低
  2. JAR 包所在目录下的 application.yml:外部配置文件,优先级高于内部配置
  3. 操作系统环境变量:通过系统环境变量设置的配置
  4. 命令行参数 :运行时通过 --key=value 指定的配置,优先级最高

五、结合 Redis 令牌机制的扩展应用

在实际项目中,这些外部配置方式可以灵活适配不同环境:

  1. 开发环境 :使用项目内 application.yml,配置本地 Redis 地址:

    yaml

    复制代码
    spring:
      data:
        redis:
          host: localhost
          port: 6379
  2. 测试环境 :通过外部 application.yml 或环境变量,修改 Redis 地址为测试服务器地址:

    bash

    运行

    复制代码
    # 环境变量方式设置 Redis 地址
    export SPRING_DATA_REDIS_HOST=test-redis-server
    java -jar big-event-1.0-SNAPSHOT.jar
  3. 生产环境 :通过命令行参数直接指定配置,避免修改文件:

    bash

    运行

    复制代码
    java -jar big-event-1.0-SNAPSHOT.jar \
      --spring.data.redis.host=prod-redis-server \
      --server.port=80

💡 关键总结:

  • 配置优先级:命令行参数 > 环境变量 > 外部配置文件 > 项目内配置文件
  • 外部配置方式可以让项目无需重新打包,就能适配不同环境
  • 结合 Redis 令牌机制时,可通过外部配置动态切换 Redis 服务器地址,适配多环境部署
相关推荐
卷无止境12 分钟前
Python 异常处理:从入门到工程实践
后端·python
AINative软件工程15 分钟前
LLM 应用的熔断降级工程实践:Circuit Breaker 不只是重试的升级版
后端·llm·ai编程
学计算机的计算基16 分钟前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana220 分钟前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
程序员爱钓鱼30 分钟前
Go 开发环境安装(Windows、macOS、Linux)
后端·面试·go
程序员爱钓鱼36 分钟前
Rust String 与 &str 详解:字符串所有权、借用与转换
前端·后端·rust
万亿少女的梦16839 分钟前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
咩咩啃树皮9 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny9 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
灯澜忆梦9 小时前
GO_并发编程---定时器
开发语言·后端·golang