• IDEA怎么配置SpringBoot多环境开发/SpringBoot怎么打包发布


    写在前面
    继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!

    一、目标

    1.运维实用篇

    • 能够掌握Spring Boot程序多环境开发
    • 能够基于Linux系统发布Spring Boot工程
    • 能够解决线上灵活配置Spring Boot工程的需求

    2.开发实用篇

    • 能够基于Spring Boot整合任意第三方技术

    二、运维实用篇

    1.工程打包与运行

    1.打包

    本地开发的项目运行后只能运行于本地,一旦本地不运行或出问题,其它客户就无法继续进行访问,从而造成很大问题。

    2. 解决

    在本地生成一个Jar包文件,在一个远程永远运行的服务器上运行此Jar包文件,客户就可以一直访问此项目,且不受其它因素的干扰。

    3.快速启动(Windows版)

    1.对SpringBoot项目进行打包(执行Maven命令package)

    ![[Pasted image 20220323103342.png]]

    2.运行项目

    打开打包后Jar所在文件路径并打开命令行窗口,运行指令(java -jar springboot.jar)即可,如图
    ![[Pasted image 20220323105845.png]]

    4.SpringBoot打包插件

    使用SpringBoot提供的maven插件可以将工程打包成可执行Jar包。

    <build>  
    	 <plugins>
    		 <plugin>
    			 <groupId>org.springframework.bootgroupId>  
    	 		<artifactId>spring-boot-maven-pluginartifactId>  
    	  	plugin>
    	plugins>
    build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5.命令行启动常见问题及解决方案

    1.Windows端口被占用

    # 查询端口
    netstat -ano
    # 查询指定端口
    netstat -ano |findstr "端口号"
    # 根据进程PID查询进程名称
    tasklist -ano |findstr "进程PID号"
    # 根据PID杀死进程任务
    taskkill /F /PID "进程PID号"
    # 根据进程名称杀死进程任务
    taskkill -f -t -im "进程 名称"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    6. SpringBoot启动(Linux版)

    • Linux服务器,可以用Docker或者虚拟机内装Linux镜像系统来代替
    • 安装JDK,版本不低于开发环境中打包时使用的JDK版本
    • 安装包保存在/usr/local/自定义目录中或$HOME下
    • 其它操作参考Windows版进行(有些命令可自行查找)

    2.临时配置与配置文件

    1.临时属性启动配置

    1.更改服务端口号

    在启动时突然想要更改项目启动服务的端口号,可以用如下命令:
    java -jar springboot*****.jar --server.port=8080

    2.其它

    • 携带多个属性启动SpringBoot,属性见可用空格隔开
    • 临时属性必须是当前boot工程支持的属性,否则设置无效

    3. 临时属性在IDEA中进行配置

    • 通过携带参数启动SpringBoot程序,如更改启动中服务器器端口号,如图
      ![[Pasted image 20220406165311.png]]
    • 不携带参数启动SpringBoot程序
      ![[Pasted image 20220406170003.png]]
      :可以在启动boot程序时断开读取外部临时配置对应的入口,也就是去掉读取外部参数的形参

    2. 配置文件4级分类(yml文件)

    1.SpringBoot中4级配置文件

    1级 :file(xx.jar)与config/application.yml共处同一目录下 最高
    2级 :file(xx.jar)与application.yml共处同一目录下
    3级 :classpath:config/application.yml
    4级 :classpath:application.yml 最低

    2.作用

    • 1级与2级留作系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控
    • 3级与4级用于系统开发阶段设置通用属性,3级用于项目经理进行整体项目属性调控
      注:同一级properties优先级大于yml,不同层级,层级高者优先

    3.自定义配置文件

    1.添加Program arguments参数

    • 更改application.properties名为app.properties,内置端口号为80
    • 在program arguments中添加参数,如图![[Pasted image 20220406175720.png]]
      或者![[Pasted image 20220406180339.png]]
    • 运行即可显示成功,如图![[Pasted image 20220406175742.png]]
      注:当后面由多个配置文件时用‘,’隔开,且后面的生效

    2.其它

    • 单服务器项目:使用自定义配置文件需求较低
    • 多服务器项目:使用自定义配置文件需求较高,将所有配置放在一个目录中,统一管理
    • 基于SpringCloud技术,所有的服务器将不在设置配置文件,而是通过配置中心进行设定,动态加载配置信息

    3.多环境开发

    1.yml版

    1.配置

    代码如下,使用什么环境就用对应的名称

    #公共配置
    #应用环境  
    spring:  
      profiles:  
        active: pro  
    ---  
    #设置环境  
    #生产环境  
    spring:  
      profiles: pro  
    server:  
      port: 80  
    ---  
    #开发环境  
    #旧格式
    spring:  
      profiles: dev  
    server:  
      port: 81  
    ---  
    #测试环境  
    #新格式
    spring:  
      config:  
        activate:  
          on-profile: test  
    server:  
      port: 82
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    2.注意事项

    • 多环境开发需要设置若干常用环境,例如开发、生产、测试环境
    • yml格式中设置多环境使用—区分设置边界
    • 每种环境的区别在于加载的配置属性不同
    • 启用某种环境时需要指定启动时使用环境

    2.yml多文件配置

    • 主启动配置文件application.yml
      ![[Pasted image 20220407114432.png]]
    • 环境分类配置文件application-pro.yml
      ![[Pasted image 20220407114538.png]]
    • 环境分类配置文件application-dev.yml
      ![[Pasted image 20220407114548.png]]
    • 环境分类配置文件application-test.yml
      ![[Pasted image 20220407114602.png]]

    3.properties多文件配置

    • 主启动配置文件application.properties
    spring.profiles.active=dev
    
    • 1
    • 环境分类配置文件application-pro.properties
    server.port=80
    
    • 1
    • 环境分类配置文件application-dev.properties
    server.port=81
    
    • 1
    • 环境分类配置文件application-test.properties
    server.port=82
    
    • 1

    4.多环境开发独立配置文件书写技巧

    1.功能配置文件

    • 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下
      • application-devDB.yml
      • application-devRedis.yml
      • application-devMVC.yml
    • 使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分割
    spring:  
      profiles:  
        #    active是最后加载的  
     active: dev  
        # 后加载会进行覆盖  
     group:  
          "dev": devMVC,devDB  
          "pro": proMVC,proDB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注:当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的属性生效

    5. Maven与SpringBoot多环境兼容

    1.maven中设置多环境属性

      
     <profiles>  
    	 <profile> 
    		 <id>env_devid>  
    		 <properties> 
    			<profile.active>devprofile.active>  
    		 properties>
    		 <activation>
    			 <activeByDefault>trueactiveByDefault>  
    		 activation>
    	profile> 
    	<profile>
    			 <id>env_proid>  
    			 <properties>
    				<profile.active>proprofile.active>  
    			 properties> 
    	profile> 
    	 <profile> 
    			 <id>env_testid>  
    		 <properties> 
    		 	<profile.active>testprofile.active>  
    		 properties>
    	profile> 
    profiles>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    2.SpringBoot 中引用maven 属性

    ![[Pasted image 20220407175233.png]]

    3.执行Maven打包指令,并在生成boot打包文件.jar文件查看相应信息

  • 相关阅读:
    pureComponent
    操作系统——什么是程序和编译器
    k8s快速查看pod对应的容器
    深度学习参数初始化(二)Kaiming初始化 含代码
    uni-app 小程序获取实时定位和车辆签到(wx.getLocation方法)
    若依前后端分离版:增加新的登录接口,用于小程序或者APP获取token,并使用若依的验证方法
    Success! kcat is now built
    128 只 LED 显示驱动芯片 CH457
    C理解(一):内存与位操作
    Jmeter的性能测试
  • 原文地址:https://blog.csdn.net/qq_40903378/article/details/126040194