1. 程式人生 > >SpringBoot 全域性配置和靜態資源配置

SpringBoot 全域性配置和靜態資源配置

1、配置檔案

SpringBoot使用一個全域性的配置檔案,配置檔名是固定的;

application.properties

application.yml

配置檔案的作用:修改SpringBoot自動配置的預設值;SpringBoot在底層都給我們自動配置好;

2、YAML語法:

### 1、基本語法

k:(空格)v:表示一對鍵值對(空格必須有);

以**空格**的縮排來控制層級關係;只要是左對齊的一列資料,都是同一個層級的
server:
    port: 8081
    path: /hello
屬性和值也是大小寫敏感;

### 2、值的寫法

#### 字面量:普通的值(數字,字串,布林)

​    k: v:字面直接來寫;

​        字串預設不用加上單引號或者雙引號;

​        "":雙引號;不會轉義字串裡面的特殊字元;特殊字元會作為本身想表示的意思

​                name:   "zhangsan \n lisi":輸出;zhangsan 換行  lisi

​        '':單引號;會轉義特殊字元,特殊字元最終只是一個普通的字串資料

​                name:   ‘zhangsan \n lisi’:輸出;zhangsan \n  lisi

#### 物件、Map(屬性和值)(鍵值對):

​    k: v:在下一行來寫物件的屬性和值的關係;注意縮排

​        物件還是k: v的方式
friends:
        lastName: zhangsan
        age: 20

行內寫法:
friends: {lastName: zhangsan,age: 18}

#### 陣列(List、Set):

用- 值表示陣列中的一個元素
pets:
 - cat
 - dog
 - pig

行內寫法
pets: [cat,dog,pig]

Bean配置
SpringBoot推薦給容器中新增元件的方式;推薦使用全註解的方式

1、配置類**@Configuration**------>Spring配置檔案

2、使用**@Bean**給容器中新增元件
/**
 * @Configuration:指明當前類是一個配置類;就是來替代之前的Spring配置檔案
 *
 * 在配置檔案中用<bean><bean/>標籤新增元件
 *
 */
@Configuration
public class MyAppConfig {

    //將方法的返回值新增到容器中;容器中這個元件預設的id就是方法名
    @Bean
    public HelloService helloService02(){
        System.out.println("配置類@Bean給容器中新增元件了...");
        return new HelloService();
    }
}

等價於<bean class="com.xx.HelloService " id="helloService02"></bean>

## 6、配置檔案載入位置

springboot 啟動會掃描以下位置的application.properties或者application.yml檔案作為Spring boot的預設配置檔案

–file:./config/

–file:./

–classpath:/config/

–classpath:/

優先順序由高到底,高優先順序的配置會覆蓋低優先順序的配置;

SpringBoot會從這四個位置全部載入主配置檔案;**互補配置**;

靜態資源配置

所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找資源;==

​    webjars:以jar包的方式引入靜態資源;

localhost:8080/webjars/jquery/3.3.1/jquery.js
<!--引入jquery-webjar-->在訪問的時候只需要寫webjars下面資源的名稱即可
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.3.1</version>
        </dependency>

==2)、"/**" 訪問當前專案的任何資源,都去(靜態資源的資料夾)找對映==
"classpath:/META-INF/resources/", 
"classpath:/resources/",
"classpath:/static/", 
"classpath:/public/" 
"/":當前專案的根路徑

localhost:8080/abc ===  去靜態資原始檔夾裡面找abc

==3)、歡迎頁; 靜態資原始檔夾下的所有index.html頁面;被"/**"對映;==

​    localhost:8080/   找index頁面

==4)、所有的 **/favicon.ico  都是在靜態資原始檔下找;==

==5)spring.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources

        自己配置靜態資源路徑