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 服务器地址,适配多环境部署
相关推荐
子兮曰10 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!10 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰10 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里11 小时前
java中的继承和多态的区别
java
小羊没烦恼!11 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝11 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕11 小时前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码11 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖11 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时12 小时前
01-06-A-JVM排查实战详解
java·jvm