springboot大綱

1.默認生成springboot項目
主程序已經生成好了,我們只需要我們寫自己的業務邏輯。controller層

resoure文件夾目錄結構
staic:保存所有的靜態資源;js css images
templates:保存所有的模板頁面(Spring boot默認jar包使用嵌入式tomcat,默認不支持jsp頁面)
application.properties:spring boot應用的配置文件,可以修改一些默認設置。
2.YAML語法
k:(空格)v:表示一對鍵值對(空格必須有)。
以空格控制縮進進來控制層級關係;只要是左對齊的一列數據,都是同一層級的。
屬性和值也是大小寫敏感。

2.@value獲取值和@configurationProperties獲取的值比較
配置文件yml還是properties他們都能獲取到值;
如果說,我們只是在某個業務邏輯中需要獲取一下文件中的某項值,使用@value;
如果說,我們專門編寫了一個javaBean來和配置文件進行映射,就直接使用configurationProperties

3.Profile
1.多Profile文件
我們在主配置文件編寫的時候,文件名可以是 application-{profile}.properties/yml;默認使用application.properties的配置。
2.yml支持多文檔塊方式
3.激活指定profile
3.1在配置文件中指定 spring.properties.active=dev
3.2命令行:
java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
可以直接測試的時候,配置傳入命令行參數
3.3虛擬機參數:
-Dspring.profiles.active=prod

一.配置文件加載位置
springboot啓動會掃描以下位置的application.properties或者application.yml文件作爲springboot的默認配置文件
-file:./config/
-file:./
-classpath:/config/
-classpath:/
優先級由高到低,高優先級的配置會覆蓋低優先級的配置;
springboot會從這四個位置全部加載主配置文件:互補配置;

我們還可以通過spring.config.location來改變默認配置文件位置
項目打包好了以後,我們可以使用命令行參數形式,啓動項目的時候來指定配置文件的位置;指定的配置文件和默認加載的配置文件共同起作用形成互補配置;
命令行參數
java -jar spring-boot-02-config-02-0.0.1-SHAPSHOT.jar --server.port=8087 --server.context-path=/abc
多個配置用空格分開;–配置項=值

二.自動配置原理:
精髓
1.springboot會自動加載大量的自動配置類;
2.我們看我們需要的功能有沒有springboot默認寫好的自動配置類;
3.我們再來看這個自動配置類中到底配置了哪些組件;(只要我們要用的組件有,我們就不需要再來配置了)
4.給容器中自動配置類添加組件的時候,會從properties類中獲取某些屬性的值,我們就可以從配置文件中指定這些屬性的值;
/*
*author:霍逸豪
*data:2020/03/14
*/
精髓
xxxxConfiguration:自動配置類
給容器中添加組件
xxxxProperties:封裝配置文件中相關屬性

自動配置類必須在一定的條件下才能生效
我們可以通過啓用 debug=true屬性;來讓控制檯打印自動配置類報告,這樣我們就可以很方便的知道哪些自動配置類生效了;

一.springboot與日誌
1.日誌框架
市面上的日誌框架
JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j…
日誌門面(JCL SLF4j jboss-logging)
日誌實現(Log4j JUL Logback Log4j2)
推薦:
日誌門面:SLF4J:
日誌實現:Logback

SpringBoot:底層是Spring框架,Spring框架默認用JCL;
SpringBoot選用SLF4j和logback

2.SLF4j使用
1.如何在系統中使用SLF4j
以後開發的時候,日誌記錄方法的調用,不應該來調用日誌的實現,而是調用日誌抽象層裏面的方法;
給系統導入slf4的jar和logback的實現jar
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info(“Hello World”);
}
}

每一個日誌都有自己的配置文件。使用slf4j以後,配置文件還是做成日誌實現框架自己本身的配置文件;
如何讓系統所有的日誌都統一到slf4j;
1.將系統中其他日誌框架先排除出去。
2.用中間包來替換原有的日誌框架;
3.我們導入slf4j其他的實現;
3.Springboot日誌關係
//記錄器

Logger logger = LoggerFactory.getLogger(getClass());
@Test
void contextLoads() {

// System.out.println();
// 日誌的級別,
// 由低到高 trace<debug<info<warn<error
// 可以調整輸出日誌級別:日誌就只會在這個級別以後的高級別生效
logger.trace(“這是trace日誌”);
logger.debug(“這是debug日誌”);
// springboot默認給我們使用的是info級別的
logger.warn(“這是warn日誌”);
logger.info(“這是info日誌”);
logger.error(“這是erro日誌…”);
}
日誌輸出格式:springboot默認配置
logging.level.com.atguigu=trace
#指定路徑在當前項目下生成的springboot.log日誌
#logging.file.name=springboot.log
#logging.file.name=F:/springboot.log
#在當前磁盤的根目錄下創建spring文件夾和裏面的log文件夾;使用spring.log作爲默認文件logging.file.path=/spring/log
logging.file.path=F:/spring/log

在控制檯輸出的日誌格式

logging.pattern.console=%d{yyyy-MM-dd-HH:mm:ss:SSS} [%thread] %-5level %logger{50} - %msg%n
#指定文件中日誌輸出的格式
logging.pattern.file=%d{yyyy-MM-dd-HH:mm:ss:SSS} === [%thread] === %-5level === %logger{50} === %msg%n

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章