1. 程式人生 > 實用技巧 >禁用 Spring Boot 中引入安全元件 spring-boot-starter-security 的方法

禁用 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