javascript
SpringBoot笔记整理(一)
SpringBoot筆記整理(一)
SpringBoot筆記整理(二)
SpringBoot筆記整理(三)
SpringBoot筆記整理(四)
1、使用Spring Initializer快速創建Springboot項目
默認生成的Spring Boot項目;
- 主程序已經生成了,我們只需要我們自己的邏輯
- resources文件夾中目錄結構
static:保存所有的靜態資源;js css images;
templates:保存所有的模板頁面;(Spring Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁面);可以使用模板引擎(freemarker、thymeleaf);
application.properties:Spring Boot應用的配置文件;
2、配置文件
SpringBoot使用一個全局的配置文件,配置文件名是固定的;
- application.properties
- application.yml
配置文件的作用:修改SpringBoot自動配置的默認值;SpringBoot在底層都給我們自動配置好;
YAML(YAML Ain’t Markup Language)
YAML A Markup Language:是一個標記語言
YAML isn’t Markup Language:不是一個標記語言
標記語言:
以前的配置文件;大多數都使用的是xxxx.xml文件;
YAML:以數據為中心,比json、xml等更適合做配置文件
YAML:配置例子
XML:
<server><port>8080</port> </server>3、YAML語法
- 基本語法
K:(空格)V:表示一對鍵值對(空格必須有);
以空格的縮進來控制層級關系;只要是左對齊的一列數據都是同一個層級的
屬性和值也是大小寫敏感
- 值的寫法
字面量:普通的值(數字、字符串、布爾)
k:v:字面直接來寫
字符串默認不用加上單引號或者雙引號;
"":雙引號:不會轉義字符串里面的特殊字符;特殊字符會作為本身想表示的意思
name:“zhangsan \n lisi”:輸出=》zhangsan 換行 lisi
'':單引號:會轉義特殊字符,特殊字符最終只是一個普通的字符串數據
name:‘zhangsan \n lisi’:輸出=》zhangsan \n lisi
對象、Map(屬性和值)(鍵值對):
k:v:在下一行來寫對象的屬性和值的關系,注意縮進
對象還是k:v的方式
行內寫法:
friends:{lastName:zhangsan, age:18}數組(List、Set):
用-值表示數組中的一個元素
pets:- cat- dog- pig行內寫法
pets:[cat,dog,pig]4、配置文件值注入
配置文件
person:lastName: zhangsanage: 18boss: falsebirth: 2019/11/25maps: {k1: v1,k2: v2}lists:- list- zhaoliudog:name: 小狗age: 12javaBean:
@Component @ConfigurationProperties(prefix = "person") public class Person {private String lastName;private Integer age;private Boolean boss;private Date birth;private Map<String,Object> maps;private List<Object> lists;private Dog dog;我們可以導入配置文件處理器,以后編寫配置就有提示了
<!--導入配置文件處理器,配置文件進行綁定就會有提示--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional> </dependency>4.1 @ConfigurationProperties獲取值和@Value比較
什么是SpEL?
Spring 表達式語言(簡稱SpEL):是一個支持運行時查詢和操作對象圖的強大的表達式語言。 語法類似于 EL表達式:SpEL 使用 #{…}作為定界符,所有在大框號中的字符都將被認為是 SpEL。SpEL 為 bean 的屬性進行動態賦值提供了便利 通過 SpEL 可以實現:
通過 bean 的 id 對 bean 進行引用 調用方法以及引用對象中的屬性計算表達式的值正則表達式的匹配
什么是JSR303?
JSR-303 是 JAVA EE 6 中的一項子規范,叫做 Bean Validation,官方參考實現是Hibernate Validator。
此實現與 Hibernate ORM 沒有任何關系。 JSR 303 用于對 Java Bean 中的字段的值進行驗證。
Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中對表單提交的數據方便地驗證。
注:可以使用注解的方式進行驗證
| @ConfigurationProperties | @Value | |
| 功能 | 批量注入配置文件中的屬性 | 一個個指定 |
| 松散綁定(松散語法) | 支持 | 不支持 |
| SpEL | 不支 | 持 支持 |
| JSR303數據校驗 | 支持 | 不支持 |
| 復雜類型封裝 | 支持 | 不支持 |
無論是配置文件yml還是properties他們都能獲取到值
如果說,我們只是在某個業務邏輯中需要獲取一下配置文件的某項值,使用@Value
如果說,我們專門編寫了一個javaBean來和配置文件進行映射,我們就直接使用@ConfigurationProperties
4.2 配置文件注入值數據校驗
@Component @ConfigurationProperties(prefix = "person") @Validated public class Person { // @Value("${person.last-name}")@Emailprivate String lastName; // @Value("#{11*2}")private Integer age; // @Value("true")private Boolean boss;private Date birth;private Map<String,Object> maps;private List<Object> lists;private Dog dog;4.3 @PropertySource&@ImportResource
@PropertySource:加載指定的配置文件
@ImportResource:導入Spring的配置文件,讓配置文件里面的內容生效
spring boot里面沒有Spring的配置文件,我們自己編寫的配置文件,也不能自動識別
想讓spring的配置文件生效,加載進來,@ImportResource標注在一個配置類上
不來編寫Spring的配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="helloService" class="com.homyit.springboot.service.HelloService"></bean></beans>SpringBoot推薦給容器中添加組件的方式:推薦使用全注解的方式
1、配置類========Spring配置文件
2、使用@Bean給容器添加組件
4.4 配置文件占位符
1、隨機數
2、占位符獲取之前配置的值,如果沒有可以使用:指定默認值
person.last-name=張三${random.uuid} #person.age=18 person.age=${random.int} person.birth=2019/11/25 person.boss=false person.maps.k1=v1 person.maps.k2=14 person.lists=a,b,c #person.dog.name=dog person.dog.name=${person.hello:hello}_dog person.dog.age=154.5 Profile
1、多Profile文件
我們在主配置文件編寫的時候,文件名可以是 application-{profile}.properties/yml
默認使用application.properties的配置
2、yml支持多文檔塊方式
server:port: 8080 spring:profiles:active: dev ---server:port: 8083 spring:profiles: dev---server:port: 8084 spring:profiles: prod3、激活指定profile
3.1 在配置文件中指定
3.2 命令行
--spring.profile.active = dev可以直接在測試的時候,配置傳入命令行參數
3.3 虛擬機參數
4.6、配置文件加載位置
- spring boot 啟動會掃描以下位置的application.properties或者application.ym文件作為Spring Boot 的默認配置文件
-file: ./config/
-file: ./
-classpath: /
以上是按照優先級從高到低的順序,所有位置的文件都會被加載,高優先級配置內容會覆蓋低優先級配置內容。互補配置
我們也可以通過配置spring.config.location來改變默認的配置文件位置。
項目打包好以后,我們可以使用命令行參數的形式,啟動項目的時候來指定文件的新位置;指定配置文件和默認加載的這些配置文件共同起作用形成互補配置。
總結
以上是生活随笔為你收集整理的SpringBoot笔记整理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络(二十一)-数据链路层设备
- 下一篇: Spring中注解大全