目录
一、对SpringBoot项目的打包
1、普通打包(windows)
进入所在目录
在所在目录进入cmd
输入
java -jar jar包的名字.jar
即可运行
需要mvn的插件依赖才行
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
2、普通打包(linux)
大致步骤与windows相同
- 将执行日志放在指定log中
nohup java -jar *.jar > server.log 2>&1 &
关闭进程
ps -ef | grep "java -jar" //显示进程名相关的信息
kill -9 41047 //杀死pid为41047的进程
3、 处理端口被占用
- windows
二、属性配置
1、临时属性的配置
带属性参数启动springBoot(Linux)
java -jar springboot.jar --server.prot=80 --属性键值=属性值
属性间用空格分隔
必须是boot支持的属性
- 在开发环境下更改临时属性(idea下)
方法1
方法2
在引导类中,通过更改引导类的形参来更改
public static void main(String[] args) {
String[] arg = new String[1];
arg[0] = "--server.port=83";
SpringApplication.run(Springboot03SsmpApplication.class, arg);
}
为了安全,将引导类中的形参删除临时属性就不起作用
SpringApplication.run(Springboot03SsmpApplication.class);
2、配置文件的级别
通常有四种级别是常用的,springboot找配置文件是向上找的
1、resources目录下的配置文件(../resources/application.yml),级别最低(通常用于开发人员本机的开发与测试)
2、resources目录下的config目录下的(../resouces/config/application.yml),排第三(通常用于项目经理的整体调控)
3、工程的jar包同层的配置文件(application.yml),第二(通常用于运维人员配置涉密线上环境)
4、工程的jar包同层的config目录下的配置文件(config/application.yml),最高(用于运维经理的整体调控)
3、自定义配置
即不用默认的配文件(application.yml),自己定义配置文件
在program arguments一栏中
--spring.config.name=配置文件名称(不用写扩展名)
或
--spring.config.lacation=classpath:/配置文件名(绝对路径) 可写多个
但在实际的微服务的开发中以上方法不常用,会使用配置中心进行管理配置文件
三、多环境的开发
在实际的开发过程中通常有多种环境,如不同的mysql的url,需事先配置好
1、yaml版
#实际用的环境 spring: profiles: active: dev #环境之间用分隔线区分 --- #生产环境名定义 spring: profiles: pro #具体参数设定 server: port: 8082 --- #开发环境定义 spring: profiles: dev #具体参数设定 server: port: 8083 --- #测试环境定义 spring: profiles: test #具体参数设定 server: port: 8084
2、多文件版(yaml)
一个环境占一个文件,便于线上系统的维护更新和保障系统的安全性
文件命名规则
主环境名-环境名(主环境名中决定用哪个文件)
如
application.yml
application-pro.yml (环境文件中就不用写环境名的配置了)
application-dev.yml
3、书写技巧
- 通常我们会对配置文件进行划分如
application-devDb.yml
application-devRedis.yml
application-devMVC.yml
这时可以用如下的用法
spring:
profiles:
active: dev //优先级最高
include: devDb,devRedis
有缺点只能以dev开头
常用方法
spring:
profiles:
active: dev //优先级最低
group:
"dev": devDb,devDb,devRedis 只会使用主环境对应的组的环境
"pro": proDb,proRedis
4、多环境开发
- 当Maven与SpringBoot同时对多环境进行控制时,以Mavenue为主,SpringBoot使用@@占位符读取Maven配置的属性值。
- 基于SpringBoot读取Maven配置属性的前提下,如果在idea下测试工程时pom.xml每次更新需要手动compile方可生效
pom.xml <profiles> <profile> <id>dev</id> <properties> <profile.active>dev</profile.active> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>dev</id> <properties> <profile.active>pro</profile.active> </properties> </profile> </profiles>application .yml
spring: profiles: active: @profile.active@ group: "dev": pro
四、日志
1、日志的基础操作
作用
- 编程期的调试代码
- 运营期记录信息
- 记录日常运营重要信息(峰值流量,平均响应时长)
- 记录应用报错信息(错误堆栈)
- 记录运维过程数据(扩容、宕机、报警)
- 日志的使用
private static final Logger log = LoggerFactory.getLogger(BookController.class);log.info("info..");//记录普通信息
log.debug("info..");//记录调试信息
- 设置日志组,指定包的日志输出级别
logging: #设置日志组 group: #自定义组名及所包含的包 ebook: com.example.controller,com.example.service level: #设置根的级别 root: warn #设置组的级别 ebook: debug #设置某个包的级别 com.example.controller: info
常用的级别debug,info,warn,error
2、快速创建日志对象(lombok)
导lombok的jar
挂上注解@Slf4j
就用log.使用
3、日志输出格式
更改日志输出格式
patten:
console:“..."
示例
4、用文件存储日志
- 用单个文件保存
logging: file: name: server.log
- 分多个文件记录
logging: logback: rollingpolicy: max-file-size: 4KB file-name-pattern: server.%d{yyyy-MM-dd}.%i.log