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)

IDEA怎么配置SpringBoot多环境开发/SpringBoot怎么打包发布_第1张图片

2.运行项目

打开打包后Jar所在文件路径并打开命令行窗口,运行指令(java -jar springboot.jar)即可,如图
IDEA怎么配置SpringBoot多环境开发/SpringBoot怎么打包发布_第2张图片

4.SpringBoot打包插件

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

<build>  
	 <plugins>
		 <plugin>
			 <groupId>org.springframework.bootgroupId>  
	 		<artifactId>spring-boot-maven-pluginartifactId>  
	  	plugin>
	plugins>
build>

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

1.Windows端口被占用

# 查询端口
netstat -ano
# 查询指定端口
netstat -ano |findstr "端口号"
# 根据进程PID查询进程名称
tasklist -ano |findstr "进程PID号"
# 根据PID杀死进程任务
taskkill /F /PID "进程PID号"
# 根据进程名称杀死进程任务
taskkill -f -t -im "进程 名称"

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程序,如更改启动中服务器器端口号,如图
    IDEA怎么配置SpringBoot多环境开发/SpringBoot怎么打包发布_第3张图片
  • 不携带参数启动SpringBoot程序
    IDEA怎么配置SpringBoot多环境开发/SpringBoot怎么打包发布_第4张图片
    :可以在启动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

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
  • 环境分类配置文件application-pro.properties
server.port=80
  • 环境分类配置文件application-dev.properties
server.port=81
  • 环境分类配置文件application-test.properties
server.port=82

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

1.功能配置文件

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

注:当主环境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>

2.SpringBoot 中引用maven 属性

IDEA怎么配置SpringBoot多环境开发/SpringBoot怎么打包发布_第5张图片

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

你可能感兴趣的:(Java,编程,spring,boot,intellij-idea,java)