SpringBoot支持properties與yaml兩種配置文件application.properties/application.ymlhtml
yaml是以數據爲中心的,比json,xml更適合作配置文件java
k: v:形式的鍵值對,:後面必須有空格
以空格縮進來控制層級關係
大小寫敏感python
例子:spring
server: port: 8081 # 設置默認端口號 servlet: path: /init
k: v 直接書寫json
【字符串默認不用加上單引號或者雙引號】數組
"":雙引號;不會轉義字符串裏面的特殊字符;服務器
'':單引號;會轉義特殊字符,特殊字符最終只是一個普通的字符串數據app
k: v:在下一行來寫對象的屬性和值的關係spring-boot
例如:測試
persion: name: zhangsan age: 10
行內寫法:
persion: {name: zhangsan,age: 10}
普通數組,List,Set 使用 -值 來表示數組中的一個元素
arrays: - arrays1 - arrays2 - arrays3
Map使用k: v的形式來表示
map:
k1: v1
k2: v2
k3: v3
在pom.xml引入依賴,用於註釋處理器生成本身的元數據
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
實體類:
/** * persion類 */ @Component @ConfigurationProperties(prefix = "persion") public class Persion { private String name; private int age; private boolean isMan; private Date birth; private String[] hobbys; private Map<String,String> skills; private List<String> enjoys; // 省略getter setter toString }
yaml配置:
persion: name: zhangsan age: 20 isMan: true birth: 1997/11/12 hobbys: - 籃球 - 足球 - 乒乓球 skills: java: javase python: ai enjoys: - eating - running - playgames
測試類
@Autowired Persion persion; @Test public void contextLoads() { System.out.println(persion); }
yaml語法教程
http://www.ruanyifeng.com/blog/2016/07/yaml.html
二.服務器配置
更改端口:
server.port=8081
更改上下文訪問路徑,SpringBoot默認範文路徑爲「/」:
server.servlet.context-path=/base
常見的服務器配置
server.port:SpringBoot監聽端口 server.error.path:錯誤處理路徑 server.servlet.context-path:配置SpringBoot默認上下文路徑
三 日誌配置
定義日誌級別
日誌級別 ERROR WARN DEBUF INFO TRACE 級別從高到低
# 輸出日誌級別 ERROR WARN DEBUF INFO TRACE,日誌只會打印當前級別,以及高於當前級別的日誌
logging.level.root=info
輸出日誌到文件
# 輸出日誌到文件
logging.file=/my.log
定義日誌輸出格式
輸出到控制檯日誌格式:
logging.pattern.console=【%level %date %logger %thread %M %L %m】 %n
輸出到日誌文件的日誌格式:
# 定義輸出到文件的日誌格式
logging.pattern.file=【%level %date %logger %thread %M %L %m】 %n
日誌格式基本參數
屬性 內容 %level 表示輸出日誌級別 %date 表示日期發生時的時間 %logger 用於輸出Logger名字,包名+類名,{n}限定輸出長度 %thread 當前線程名 %M 日誌發生時方法的名字 %L 日誌調用所在代碼行 %m 日誌消息 %n 日誌換行
日誌使用例子:
public class Hello { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(Hello.class); logger.debug("Hello World"); } }
日誌的輸出格式:
%d:表示日期時間 %thread:表示線程名 %‐5level:級別從左顯示5個字符寬度 %logger{50}:表示logger名字最長50個字符,不然按照句點分割。 %msg:日誌消息 %n:是換行符 %d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n
例子:
設置application.properties的日誌配置
# 設置日誌等級 logging.level.com.fjut.*=trace # 設置在控制檯輸出的日誌的格式 logging.pattern.console=[%d{yyyy‐MM‐dd}]-[%level]-[%msg]-%logger{50}%n # 指定文件中日誌輸出的格式 logging.pattern.file=%d{yyyy‐MM‐dd} === [%thread] === %level === %logger{50} ==== %msg%n
# 設置輸出日誌文件
logging.file=/my.log
測試:
//打印五個等級的日誌 @Test public void contextLoads() { Logger logger = LoggerFactory.getLogger(getClass()); logger.error("error ..."); logger.warn("warn ..."); logger.debug("debug ..."); logger.info("info ..."); logger.trace("trace ..."); }