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
自己配置靜態資源路徑