知识点
- 使用
SpringBoot
提供的maven
插件可以将工程打包成可执行jar
包然后执行,即java –jar xxx.jar
,下面的图是MANIFEST.MF
文件的内容:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
- 命令行启动常见问题及解决方案(针对
Windows
系统):# 查询端口 netstat -ano # 查询指定端口 netstat -ano |findstr "端口号" # 根据进程PID查询进程名称 tasklist |findstr "进程PID号" # 根据PID杀死任务 taskkill /F /PID "进程PID号" # 根据进程名称杀死任务 taskkill -f -t -im "进程名称"
- 在
Linux
系统中启动SpringBoot
项目:nohup java -jar xxx.jar > xxx/xxx.log 2>&1 # 在后台启动SpringBoot项目并且将输出的日志记录在log文件中 ps -ef | grep ""java -jar" # 找到启动程序的pid kill -9 xxx # 根据pid终止SpringBoot项目
SpringBoot
中4级配置文件:
- 1级(级别最高,运维经理进行线上整体项目部署方案的调控):
file:config/application.yml
,即项目jar
包所在路径下创建一个config
目录,其中的yml
文件- 2级:
file:application.yml
,即项目jar
包所在路径下的yml
文件- 3级(项目经理进行整体项目属性的调控):
classpath:config/application.yml
,即当前下项目的resources
目录下创建一个config
目录,其中的yml
文件- 3级:
classpath:application.yml
,即当前下项目的resources
目录下的yml
文件- 在命令行中可以设置
SpringBoot
的配置文件路径,不过在SpringCloud
中就使用过配置中心进行设定,动态加载配置信息:--spring.config.location=classpath:/xxx.yml
- 假设根据功能对
application-dev.yml
配置文件(该文件还是保留了)中的信息进行拆分,并制作成独立的三个配置文件application-devDB.yml
、application-devRedis.yml
和application-devMVC.yml
,要对多个环境进行加载使其生效:# application-xxx.yml是命名规则 # 未使用group属性,优先级为devDB<devRedis<devMVC<dev Spring: profiles: active: dev # application-dev.yml也会生效,该文件中的优先级大于include中的 include: devDB,devRedis,devMVC # 这三个文件都会生效,越往后的文件优先级越高 # 使用group属性,优先级为dev<devDB<devRedis<devMVC Spring: profiles: active: dev # application-dev.yml也会生效,该文件中的小于dev中的三个 group: "dev": devDB,devRedis,devMVC # 这三个文件生效,越往后的文件优先级越高 "pro": proDB,proRedis,proMVC "test": testDB,testRedis,testMVC
- 当
Maven
与SpringBoot
同时对多环境进行控制时,以Maven
为主(通过修改pom
文件进行环境的切换),SpringBoot
使用@..@
占位符读取Maven
对应的配置属性值<profiles> <profile> <id>dev_env</id> <properties> <profile.active>dev</profile.active> </properties> <activation> <activeByDefault>true</activeByDefault> <!--设置当前环境生效--> </activation> </profile> <profile> <id>pro_env</id> <properties> <profile.active>pro</profile.active> </properties> </profile> <profile> <id>test_env</id> <properties> <profile.active>test</profile.active> </properties> </profile> </profiles>
spring: profiles: active: @profile.active@ # 此时运行dev中的
- 日志级别(启动项目后控制台不会输出
DEBUG
级别的具体日志信息是因为默认输出INFO
及以上级别的,而DEBUG
级别低于INFO
):
TRACE
:运行堆栈信息,使用率低DEBUG
:程序员调试代码使用INFO
:记录运维过程数据WARN
:记录运维过程报警数据ERROR
:记录错误堆栈信息FATAL
:灾难信息,合并计入ERROR
- 设置日志输出级别和日志组(日志组即控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别):
# 1.设置日志输出级别 # 开启debug模式,输出调试信息,常用于检查系统运行状况 debug: true # 设置日志级别,root表示根节点,即整体应用日志级别 logging: level: root: debug ------------------------------------------------- # 2.设置日志组 logging: group: # 自定义组名,设置当前组中所包含的包 ebank: com.psj.controller level: root: warn # 为对应组设置日志级别 ebank: debug # 为对包设置日志级别 # com.psj.controller: debug
- 日志输出格式如下图,要控制输出格式可以进行以下配置:
logging: pattern: console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n" # %d表示日期,%m表示信息
- 日志文件详细配置:
logging: file: name: server.log logback: rollingpolicy: max-file-size: 3KB file-name-pattern: server.%d{yyyy-MM-dd}.%i.log
注意事项
- 在打包过程中会执行测试,如果写了测试代码就会执行代码,所以需要通过设置跳过测试步骤再打包
资料
视频参考黑马程序员SpringBoot2全套视频教程 P54-P69