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 服务器地址,适配多环境部署
相关推荐
ChaHae-In29 分钟前
MyBatis入门操作
java·mybatis
xcLeigh34 分钟前
Go入门:短变量声明的陷阱与最佳实践
java·redis·golang·教程·变量
青山木40 分钟前
Hot 100 --- 最小栈
java·数据结构·算法·leetcode
疯狂打码的少年43 分钟前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法
szephyr1 小时前
腾讯云 ADP 智能体的 Skills 版本回滚总是回到旧配置,是缓存没清还是版本管理没开?
java·缓存·腾讯云
云烟成雨TD1 小时前
Micrometer 系列【39】链路追踪:入门案例 | 环境准备
java·云原生·链路追踪
chuan.bai1 小时前
Java RAG 实战(第 3 篇):从交互式聊天到多轮上下文
java·人工智能·macos·ai
雪隐1 小时前
个人电脑玩AI-16让5060 Ti给你打工——MiniMax H3 提速实录:从"泡杯茶等视频"到"视频等你",一张 5060 Ti 的自我修养
前端·人工智能·后端
952361 小时前
Sentinel
java·后端·spring·sentinel·springcloud
阿pin1 小时前
Java随笔-JDK7 HashMap头插法为何能导致死循环?
java·开发语言·hashmap