SpringBoot--運維實用
SpringBoot運維實用篇
打包與運行
windows打包

在maven中雙擊package打包
另外如果打包報utf-8的錯,在pom中添加
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
如果報什么測試錯誤,你clean一下,如果還是不行自己找下其他地方有沒有問題
另外項目沒有target目錄的話:

完成后:target目錄下的這個文件就是我們打包的文件

運行打包文件:在cmd中

注意:windows有補全文件名功能,打上一個d點擊tab 就能得到那個demo-0.0.。。。。
打包跳過test的方法:

打包插件


插件的作用:打包一個可以獨立運行的程序,包含你的程序,程序運行的所有jar包,為了能運行加入的工具包
linux快速啟動springboot


然后將打包的jar文件上傳到該文件夾中
當然要確保linux中有jdk環(huán)境
在linux中連接數(shù)據(jù)庫,類似

之后

之后找到ip地址和端口,在瀏覽器查看
防止霸屏可以后臺啟動:

總結(jié):

配置高級
臨時屬性設置
臨時更改端口:(程序已經(jīng)傳到服務器配置文件改不了了)

改多個屬性:

臨時屬性必須是springboot支持的屬性否則設置無效
在idea中設置臨時屬性:
第一種

第二種:

不帶參數(shù)啟動springboot可以防止外界設置臨時屬性降低程序得到安全性
配置覆蓋(四級配置文件)

當然只覆蓋新配置文件中有的屬性
- 在打包jar包所在目錄配置一個配置文件那么他的優(yōu)先級又高于上面兩者
- 在打包jar包所在目錄創(chuàng)建一個config目錄在里面添加一個配置文件,他的優(yōu)先級又高于上面三者

自定義配置文件
如果我們配置文件名字不想用application,想換個其他名字需要怎么辦呢?
需要設置臨時屬性:
方法一:

方法二:

這就把文件名改為了ebank了
設置多個配置文件:

最后一個配置文件優(yōu)先級高
重要說明:

多環(huán)境開發(fā)
多環(huán)境開發(fā)就是生產(chǎn)、開發(fā)、測試環(huán)境不在同一臺主機,而且配置文件可能也有所區(qū)別
#應用環(huán)境
#表示本處我們有profiles名字為pro的環(huán)境
spring:
profiles:
active: pro
---
#生產(chǎn)環(huán)境
server:
port: 81
spring:
profiles: pro
---
#測試環(huán)境
server:
port: 80
spring:
profiles: test
---
#開發(fā)環(huán)境
server:
port: 82
spring:
profiles: dev
如果不同環(huán)境的配置在不同的配置文件中:

和之前類似只不過profiles的名字就是文件名-后面的,比如application-dev.yml 的名字就是dev
多環(huán)境開發(fā)分組管理

上面優(yōu)先級:dev>devMVC>devRedis>devDB

本處的dev就是下面的“dev”組,所以說本處啟動的是devDB,devMVC

多環(huán)境開發(fā)控制
maven和springboot多環(huán)境兼容步驟:




日志
日志基礎
- 日志作用
- 編程期調(diào)試代碼
- 運營期記錄信息
- 日常重要信息(峰值流量。。。)
- 報錯信息(錯誤堆棧。。)
- 運維過程數(shù)據(jù)(擴容、報警。。)
@RestController
@RequestMapping("/books")
public class BookController {
// 創(chuàng)建記錄日志對象
private static final Logger log = LoggerFactory.getLogger(BookController.class);
@GetMapping
public String getById(){
System.out.println("spring is running..");
log.debug("debug..");
log.info("info。。。");
log.error("error...");
log.warn("warn...");
return "springboot is running...";
}
}
啟動項目打開網(wǎng)頁后:

默認為info級別所以不顯示debug,如果要顯示需要設為debug級別,設置方法:配置文件中:

級別設置為warn就只有error進而warn
設置為error就只有error,因為只會顯示大于等于error級別的信息
不僅可以設置根目錄的日志級別還可以設置某個包的日志級別,和設置分組對某個組設置日志級別:

快速創(chuàng)建日志對象
導入lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
之后
@Slf4j
@RestController
@RequestMapping("/books")
public class BookController {
//// 加上@Slf4j注釋就不用創(chuàng)建這個對象
// private static final Logger log = LoggerFactory.getLogger(BookController.class);
//
@GetMapping
public String getById(){
System.out.println("spring is running..");
log.debug("debug..");
log.info("info。。。");
log.error("error...");
log.warn("warn...");
return "springboot is running...";
}
}
日志輸出格式控制
基礎格式:

我們可以自己設置日志輸出格式:

基礎格式相當于:

文件記錄日志
logging:
file:
name: server.log
logback:
rollingpolicy:
# 文件大小超過10mb就創(chuàng)建新文件
max-file-size: 10MB
# 設置命名格式:類似server.2020-01-01.01.log
file-name-pattern: serber.%d{yyyy-MM-dd}.%i.log
這樣在本文件根目錄就會出現(xiàn)一個叫做server.log的文件來記錄日志信息
浙公網(wǎng)安備 33010602011771號