是因为没有使用SpringBoot提供的maven插件
使用SpringBoot提供的maven插件可以将工程打包成可执行jar包
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
# 查询端口
netstat -ano
# 查询指定端口
netstat -ano |findstr "端口号"
# 根据进程PID查询进程名称
tasklist |findstr "进程PID号"
# 根据PID杀死任务
taskkill /F /PID "进程PID号"
# 根据进程名称杀死任务
taskkill -f -t -im "进程名称"
nohup java -jar springboot.jar >service.log 2>&1 &
带属性数启动SpringBoot,将端口号设为8888
java –jar springboot.jar –-server.port=8888
属性优先级:
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config
public static void main(String[] args) {
String[] arg = new String[1];
arg[0] = "--server.port=8080";
SpringApplication.run(SSMPApplication.class, arg);
//可以在启动boot程序时断开读取外部临时配置对应的入口,
//也就是去掉读取外部参数的形参
SpringApplication.run(SSMPApplication.class);
}
SpringBoot中4级配置文件
1级: file :config/application.yml 【最高】
2级: file :application.yml
3级:classpath:config/application.yml
4级:classpath:application.yml 【最低】
作用:
1级与2级留做系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控。
3级与4级用于系统开发阶段设置通用属性,3级常用于项目经理进行整体项目属性调控。
file:将项目打包后,在jar包下创建.yml文件,或者创建config/yml文件
单服务器项目:使用自定义配置文件需求较低
多服务器项目:使用自定义配置文件需求较高,将所有配置放置在一个目录中,统一管理
基于SpringCloud技术,所有的服务器将不再设置配置文件,而是通过配置中心进行设定,动态加载配置信息
spring:
profiles:
active: pro
---
spring:
profiles: pro
server:
port: 80
---
spring:
profiles: dev
server:
port: 81
---
spring:
profiles: test
server:
port: 82
主配置文件中设置公共配置(全局)
环境分类配置文件中常用于设置冲突属性(局部)
spring:
profiles:
active: dev
group:
"dev": devDB,devRedis,devMVC
"pro": proDB,proRedis,proMVC
"test": testDB,testRedis,testMVC
当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效。最后加载的覆盖前面加载的。例如上述goup的“dev”的:devMVC 会覆盖前面的devDB/devRedis
Spring在基于maven运行,所以说主要配置maven,让spring读取maven。
在xml设定好规则,然后yml文件去xml去读取即可。
<profiles>
<profile>
<id>dev_envid>
<properties>
<profile.active>devprofile.active>
properties>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
profile>
<profile>
<id>pro_envid>
<properties>
<profile.active>proprofile.active>
properties>
profile>
<profile>
<id>test_envid>
<properties>
<profile.active>testprofile.active>
properties>
profile>
profiles>
spring:
profiles:
active: @profile.active@
当打包后:查看yml文件时,以及是在maven设定好的优先启动文件。并非是:@profile.active@
而是相对应的:dev
基于SpringBoot读取Maven配置属性的前提下,如果在Idea下测试工程时pom.xml,每次更新需要手动compile方可生效
编程期调试代码
运营期记录信息:
记录日常运营重要信息(峰值流量、平均响应时长……)
记录应用报错信息(错误堆栈)
记录运维过程数据(扩容、宕机、报警……)
日志级别:
TRACE:运行堆栈信息,使用率低
DEBUG:程序员调试代码使用
INFO:记录运维过程数据
WARN:记录运维过程报警数据
ERROR:记录错误堆栈信息
FATAL:灾难信息,合并计入ERROR
# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
level:
root: debug
日志文件详细配置:
#开启日志文件
logging:
file:
name: server.log
#分文件记录、滚动的日志:1.文件名字 2.文件大小,超过则自动创建下一个文件
logback:
file-name-pattern:
# server.2020-01-01.0.log 百分d是日期,i:是第几个文件
max-file-size: server.%d{yyyy-MM-dd}.%i.log
rollingpolicy: 4KB