spring boot 15
一、SpringBoot 项目部署流程1. 项目打包SpringBoot 项目通过spring-boot-maven-plugin插件打包成可执行 JAR 包xmlplugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId version3.1.3/version /plugin执行mvn package后会在target目录生成可直接运行的 JAR 包如big-event-1.0-SNAPSHOT.jar2. 运行 JAR 包使用java -jar命令运行bash运行java -jar big-event-1.0-SNAPSHOT.jar运行后SpringBoot 会自动启动内嵌的 Tomcat 服务器默认端口为 8080二、配置文件方式项目内配置1.application.properties键值对格式示例propertiesserver.port8081 spring.datasource.urljdbc:mysql://localhost:3306/test2.application.ymlYAML 缩进格式层级更清晰示例yamlserver: port: 8082 spring: datasource: url: jdbc:mysql://localhost:3306/test三、外部配置方式运行时修改配置1. 命令行参数方式通过--键值的形式在运行 JAR 包时直接修改配置优先级最高bash运行# 修改服务端口为 9999 java -jar big-event-1.0-SNAPSHOT.jar --server.port9999 # 同时修改多个配置 java -jar big-event-1.0-SNAPSHOT.jar --server.port9999 --spring.profiles.activeprod示例中控制台日志会显示Tomcat initialized with port(s): 9999说明配置生效2. 环境变量方式通过操作系统环境变量修改配置在 Windows 系统中新建用户变量server.port值为8888运行 JAR 包时SpringBoot 会自动读取该环境变量端口会变为 88883. 外部配置文件方式在 JAR 包所在目录下新建application.yml文件配置优先级高于 JAR 包内的配置yaml# 外部 application.yml server: port: 7777运行时SpringBoot 会优先加载 JAR 包所在目录下的application.yml端口会变为 7777四、配置优先级从低到高SpringBoot 会按以下顺序加载配置后面的配置会覆盖前面的项目中resources目录下的application.yml默认配置优先级最低JAR 包所在目录下的application.yml外部配置文件优先级高于内部配置操作系统环境变量通过系统环境变量设置的配置命令行参数运行时通过--keyvalue指定的配置优先级最高五、结合 Redis 令牌机制的扩展应用在实际项目中这些外部配置方式可以灵活适配不同环境开发环境使用项目内application.yml配置本地 Redis 地址yamlspring: data: redis: host: localhost port: 6379测试环境通过外部application.yml或环境变量修改 Redis 地址为测试服务器地址bash运行# 环境变量方式设置 Redis 地址 export SPRING_DATA_REDIS_HOSTtest-redis-server java -jar big-event-1.0-SNAPSHOT.jar生产环境通过命令行参数直接指定配置避免修改文件bash运行java -jar big-event-1.0-SNAPSHOT.jar \ --spring.data.redis.hostprod-redis-server \ --server.port80 关键总结配置优先级命令行参数 环境变量 外部配置文件 项目内配置文件外部配置方式可以让项目无需重新打包就能适配不同环境结合 Redis 令牌机制时可通过外部配置动态切换 Redis 服务器地址适配多环境部署