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 服务器地址,适配多环境部署
相关推荐
码场老菜鸟5 小时前
C++ 指针的深度理解与应用
java·c++·算法
霸道流氓气质5 小时前
Spring AI Function Calling实现原理与自定义函数
java·spring·microsoft
OPEN-F5 小时前
C++并发编程:条件变量与原子操作
java·开发语言·c++
乐橙开放平台5 小时前
把工地遮挡和掉线接进项目部:setMessageCallback 订 alarm 与 deviceStatus
笔记·后端·物联网·自动化·音视频·智能家居
南城以南溫暖如初1475 小时前
社群电商实战指南:从零搭建高转化社区的技术架构
java·spring boot·mysql·系统架构·vue·mybatis
南城以南溫暖如初1475 小时前
会员返利商城系统开发实战:架构设计与实现指南
java·spring boot·mysql·vue·mybatis
Shaoshing5 小时前
Java SE Java EE 和 JavaME区别
java
卷无止境5 小时前
FastAPI 的可观测性进化,从打日志到看清整个系统的呼吸
后端·python·fastapi
lhldsg5 小时前
树洞倾诉的核心需求与产品定位误区
java·前端·小程序
Freak嵌入式6 小时前
MicroPython+Pico 接收空闲中断和发送空闲中断全实战
java·开发语言·stm32·单片机·嵌入式硬件