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 服务器地址,适配多环境部署
相关推荐
逍遥德11 分钟前
MQTT教程详解-05.SpringBoot集成mqtt client 性能分析
java·spring boot·spring·mt
云烟成雨TD16 分钟前
Spring AI 1.x 系列【54】Retry 机制分析
java·人工智能·spring
weixin_5231853218 分钟前
Collections.unmodifiableMap详解:真的不可修改吗?
java·linux·前端
点燃大海20 分钟前
SpringAI构建智能体
java·spring boot·spring·springai智能体
xier_ran21 分钟前
【infra之路】02_RadixAttention与KV_Cache管理
java·spring boot·spring
swipe28 分钟前
做多轮对话 Agent,为什么我建议把短期记忆放到 Redis
后端·面试·llm
黑马师兄35 分钟前
RAG混合检索深度解析:让AI真正找到你要的内容
java·人工智能·ai·agent·rag·ai-native
码客日记39 分钟前
Spring Boot 配置文件敏感信息加密(Jasypt 企业级完整方案)
java·spring boot·git
程序员黑豆1 小时前
AI全栈开发之Java:什么是JDK
前端·后端·ai编程
凡人叶枫1 小时前
Effective C++ 条款04:确定对象被使用前已先被初始化
java·linux·开发语言·c++·嵌入式开发