禁用 Spring Boot 中引入安全元件 spring-boot-starter-security 的方法
1.原理檢視:
1.自動配置:
pom.xml:
spring-boot-dependencies:核心依賴在父工程中
在寫或者引入一些spring boot依賴的時候,不許喲啊指定版本,因為有這些版本的倉庫
2.啟動器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
啟動器說白了就是spring boot的啟動場景:如spring-boot-starter-web會自動幫我們帶入web環境所有的依賴,spring boot會把所有的功能場景,變成一個個的啟動器。
所以我們要使用什麼功能,就找到對應的啟動器就行
3.主程式
@SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } }
註解:
@SpringBootConfiguration:springboot的配置 @Configuration:spring配置類 @Component:說明這也是一個spring的元件 @EnableAutoConfiguration:自動配置 @AutoConfigurationPackage:自動配置包 @Import(AutoConfigurationPackages.Registrar.class):自動配置包註冊 @Import(AutoConfigurationImportSelector.class):自動匯入配置選擇
結論:spring boot所有的自動配置都是再啟動的時候掃描並載入:spring.factories所有的自動配置;類都在這裡面,但是不一定生效,要通過@ConditionalOnXXX判斷條件是否成立,只要匯入了對應的start,就有對應的啟動器了,有了啟動器我們的自動裝配就會生效了,然後就配置成功了
啟動步驟:
1.spring boot再啟動的時候,從類路徑下/META-INF/spring.factories獲取指定的值
2.把這些自動裝配的類倒入容器,自動配置就會生效,幫我進行自動裝配
3.以前我們需要自動配置的東西,現在spring boot幫我們做了
4.整合Javaee,解決方法和自動配置的東西都在spring-boot-autoconfigure-2.2.0.RELEASE.jar這個包下
5.他會把所有的需要匯入的元件,以類名的方式返回,這些元件就會被新增到容器
6.容器中也會村子啊非常多的xxxAutoConfiguration的檔案(@Bean),就是這些類容器中匯入了這個場景需要的所有的元件並自動配置,@Configuration,JavaConfig
7.有了自動配置類,才免去了我們手動編寫配置檔案的工作
2.yaml的語法和使用規範
yaml的寫法: key:空格value
properties的寫法: key:value
yaml可以寫物件可以寫陣列。
鬆散繫結:person:
name: ${hu}_王
3.JSR303資料校驗
4.自動裝配的原理
web:
1.使用springboot處理靜態資源
不推薦:1.使用webjars ,路勁格式: localhost:8080/webjars/jar包下剩餘路徑
不推薦:2.自定義路徑:在yml檔案中新增配置:如sprin.mvc.static-path-pattern=/hello/,classpath:/kuang/
推薦:3.使用webProperties寫好的方法(classpath:public,classpath:static,classpath:/**,classpath:resources) 路徑格式:localhost:8080
2.載入優先順序:resources>static(預設)>public
模板引擎:
只要需要使用thymeleaf,只需要匯入對應的依賴就可以了,
預設的讀取路徑是:public static final String DEFAULT_PREFIX = "classpath:/templates/";
字首:private String prefix = "classpath:/templates/";
字尾:private String suffix = ".html";
1.首頁配置:
1.1 注意點,所有頁面的靜態資源都需要使用thymeleaf接管
1.2 url: @{}
2.頁面國際化
2.1 我們需要配置i18n
2.2我們如果需要在專案中進行按鈕自動切換,我們需要自定義一個元件LocaleResolver
2.3記得把我們自己寫的元件配置到spring容器@Bean
2.1在獲取對應的語言的時候則是使用#{}獲取資料
為實現國際化,可以通過語言的自動轉換
yml配置如下:
spring:
messages:
basename: i18n.login
然後可以通過自己對轉換進行自定義config