在使用SpringBoot開發的過程中我們通常會用到配置文件來設置配置信息
以及使用日志來進行記錄我們的操作,方便我們對錯誤的定位
配置文件的作用在于:設置端口,設置數據庫連接信息,設置日志等等?
在SpringBoot中,配置文件必須要以application作為命名,
同時在SpringBoot中有兩種配置文件格式
一種是application.properties,另一種是application.yml的格式
兩種格式的區別在于properties是SpringBoot中默認的配置文件的格式
而yml格式支持多種語言的格式
以properties格式為例子:properties存儲配置信息是以key-value的形式進行存儲的
#配置項中設置端口號
server.port = 9090#配置項中設置數據庫的連接
spring.datasource.url = jdbc:mysql//127.0.0.1:3306/java?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 8888#配置項中設置日志
logging.level.com.example.demo = debug
logging.file=d:/work/demo.log#配置項中設置對象中的屬性
student.name = tom
student.id = 1
student.gender = man
properties格式的配置文件的缺點在于不能夠支持多種語言,并且配置內容過于冗余
但是在springboot中properties的優先級是比yml要高的
而我們使用yml的形式就可以彌補properties的缺點了
#設置端口號
server:port: 9090#設置字段的內容
mystr1: 你\n好
mystr2: '你\n好'
mystr3: "你\n好"#設置對象的屬性
student:id: 1name: 張三age: 18# 日志級別的設置
logging:level:root: errorcom:example:demo:controller: tracefile:path: D:\
上面提到的設置字段的內容,我們都是可以在class類里面進行調用的
不管是使用哪種配置文件都是使用 @Value(${xxxx})注解的形式進行調用
@Value("${mystr1}")private String str1;@Value("${mystr2}")private String str2;@Value("${mystr3}")private String str3; //"xxx\nxxx" 只有這樣才能進行換行
在yml中我們要想將字段進行換行打印就需要用到字符串以及轉義字符,否則無法進行換行輸出
我們還提到了在可以設置對象的屬性進行注入
這個時候我們就需要在實體類中使用注解
@ConfigurationProperties("xxx") <-此處的xxx為配置文件中對象名稱?
這樣就可以進行屬性注入了
@ConfigurationProperties("student")
@Controller
public class StudentController {private int id;private String name;private int age;
}
在實際開發的過程中我們通常有三個環境:開發環境、測試環境、生產環境
可能每個環境下我們的配置文件都不一樣,但是代碼是相同的
所以為了適配各個環境下的配置文件
我們可以創建一個公共的配置文件來調用不同環境下的配置環境
我們各個環境的配置文件都要以?application 開頭然后加上各自的命名
比如開發環境:application-dev.yml 測試環境application-test.yml 生產環境application-prod.yml
在公共的配置文件 application.yml中只需要輸入這段代碼就可以調用到不同的配置環境了
#設置平臺 比如此時我想設置成生產環境
spring:profiles:active: prod
講完了配置文件我們來說說日志
我們可以使用日志來進行記錄錯誤等信息,當然也可以記錄程序的執行時間以及程序的操作人等等
實際上SpringBoot中內置了日志,我們每次在啟動SpringBoot的時候都能看到一長串的日志內容
那么SpringBoot中的日志框架里面的內容可以分為:日志門面以及日志實現
日志門面就相當于是一個中間人,我們在調用日志門面以后日志門面會幫我們找到具體的日志實現的項目 ,在日志門面包括(SLF4J以及common-logging)
在日志中,日志的等級分為(從低到高進行排序):
[trace]:級別最低
[debug]?:調試的時候進行打印的內容
[info]:普通打印信息
[warn]:警告信息但不影響使用
[error]:錯誤信息影響正常使用
[fatal]:不會打印出來,直接導致程序退出
我們可以在配置文件中設置我們想要看到的日志等級,比如
#yml格式下的日志配置logging:level: #只查看error及以上的日志信息 root:error
我們也可以設置某一個包在運行過程的日志提示,比如
#yml格式下的日志配置logging:level: #只查看error及以上的日志信息 root:error com: example: #查看controller包底下在運行過程中trace及以上的日志信息 controller: trace
?那么現在再來講講應該怎么樣使用日志
我們首先要實例化日志這個類然后再將需要打印日志的類
(比如我現在的UserController需要答應日志)
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
然后就可以正常使用了
@RequestMapping("/sayHi")public String sayHi(){logger.trace("trace"); //打印一個trace日志 日志內容是tracelogger.info("info"); //打印一個info日志 日志內容是infologger.warn("warn"); //打印一個warn日志 日志內容是warnlogger.error("error"); //打印一個error日志 日志內容是errorreturn "hello world";}
實際上我們如果調用Lombok這個框架的話
只需要加入 @Slf4j 這個注解就不需要再實例化日志對象了
然后日志對象的名稱注意 一定是 log
接下來的步驟和正常使用沒有區別