javascript
springboot test_精益求精!Spring Boot 知识点全面回顾,带你重新细读源码!
作者:cyd_0619
原文:https://blog.csdn.net/cyd_0619
約定優于配置
Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications.Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of
Spring.
上面是引自官網的一段話,大概是說:Spring Boot 是所有基于 Spring 開發的項目的起點。Spring Boot 的設計是為了讓你盡可能快的跑起來 Spring 應用程序并且盡可能減少你的配置文件。
約定優于配置(Convention over Configuration),又稱按約定編程,是一種軟件設計范式。
本質上是說,系統、類庫或框架應該假定合理的默認值,而非要求提供不必要的配置。比如說模型中有一個名為User的類,那么數據庫中對應的表就會默認命名為user。只有在偏離這一個約定的時候,例如:想要將該表命名為person,才需要寫有關這個名字的配置。
比如平時架構師搭建項目就是限制軟件開發隨便寫代碼,制定出一套規范,讓開發人員按統一的要求進行開發編碼測試之類的,這樣就加強了開發效率與審查代碼效率。所以說寫代碼的時候就需要按要求命名,這樣統一規范的代碼就有良好的可讀性與維護性了
約定優于配置簡單來理解,就是遵循約定。
SpringBoot概念
Spring優缺點分析
優點:
Spring是Java企業版(Java Enterprise Edition,JEE,也稱J2EE)的輕量級代替品。無需開發重量級的Enterprise JavaBean(EJB),Spring為企業級Java開發提供了一種相對簡單的方法,通過依賴注入和面向切面編程,用簡單的Java對象(Plain Old Java Object,POJO)實現了EJB的功能。
缺點:
雖然Spring的組件代碼是輕量級的,但它的配置卻是重量級的。一開始,Spring用XML配置,而且是很多XML配 置。Spring 2.5引入了基于注解的組件掃描,這消除了大量針對應用程序自身組件的顯式XML配置。Spring 3.0引入 了基于Java的配置,這是一種類型安全的可重構配置方式,可以代替XML。
所有這些配置都代表了開發時的損耗。因為在思考Spring特性配置和解決業務問題之間需要進行思維切換,所以編寫配置擠占了編寫應用程序邏輯的時間。和所有框架一樣,Spring實用,但與此同時它要求的回報也不少。
除此之外,項目的依賴管理也是一件耗時耗力的事情。在環境搭建時,需要分析要導入哪些庫的坐標,而且還需要分析導入與之有依賴關系的其他庫的坐標,一旦選錯了依賴的版本,隨之而來的不兼容問題就會嚴重阻礙項目的開發進度。
SpringBoot解決上述spring問題
SpringBoot對上述Spring的缺點進行的改善和優化,基于約定優于配置的思想,可以讓開發人員不必在配置與邏輯業務之間進行思維的切換,全身心的投入到邏輯業務的代碼編寫中,從而大大提高了開發的效率,一定程度上縮短了項目周期。
起步依賴
起步依賴本質上是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加在一起即支持某項功能。簡單的說,起步依賴就是將具備某種功能的坐標打包到一起,并提供一些默認的功能。
自動配置
springboot的自動配置,指的是springboot,會自動將一些配置類的bean注冊進ioc容器,我們可以需要的地方使用@autowired或者@resource等注解來使用它。
“自動” 的表現形式就是我們只需要引我們想用功能的包,相關的配置我們完全不用管,springboot會自動注入這些配置bean,我們直接使用這些bean即可。
springboot:簡單、快速、方便地搭建項目;對主流開發框架的無配置集成;極大提高了開發、部署效率。
SpringBoot 案例實現
案例需求:請求Controller中的方法,并將返回值響應到頁面
使用Spring Initializr方式構建Spring Boot項目
本質上說,Spring Initializr是一個Web應用,它提供了一個基本的項目結構,能夠幫助我們快速構建一個基礎的Spring Boot項目。
Project SDK”用于設置創建項目使用的JDK版本,這里,使用之前初始化設置好的JDK版本即可;在“Choose Initializr Service URL(選擇初始化服務地址)”下使用默認的初始化服務地址“https://start.spring.io”進行Spring Boot項目創建(注意使用快速方式創建Spring Boot項目時,所在主機須在聯網狀態下)
Spring Boot項目就創建好了。創建好的Spring Boot項目結構如圖:
使用Spring Initializr方式構建的Spring Boot項目會默認生成項目啟動類、存放前端靜態資源和頁面的文件夾、編寫項目配置的配置文件以及進行項目單元測試的測試類。
創建一個用于Web訪問的Controller
com.cyd包下創建名稱為controller的包,在該包下創建一個請求處理控制類HelloController,并編寫一個請求處理方法?(注意:將項目啟動類SpringBootDemoApplication移動到com.cyd包下)
@RestControllerpublic class HelloController {
@RequestMapping("/hello")
public String hello(){
return "你好 spring Boot";
}
}
運行項目
運行主程序啟動類SpringbootDemoApplication,項目啟動成功后,在控制臺上會發現Spring Boot項目默認啟動的端口號為8080,此時,可以在瀏覽器上訪問“http://localhost:8080/hello”
頁面輸出的內容是“你好 Spring Boot”,至此,構建Spring Boot項目就完成了。
附:解決中文亂碼:
解決方法一:
@RequestMapping(produces = "application/json; charset=utf-8")解決方法二:
#設置響應為utf-8spring.http.encoding.force-response=true
單元測試與熱部署
單元測試
開發中,每當完成一個功能接口或業務方法的編寫后,通常都會借助單元測試驗證該功能是否正確。Spring Boot對項目的單元測試提供了很好的支持,在使用時,需要提前在項目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動器,可以通過相關注解實現單元測試。
演示:
添加spring-boot-starter-test測試依賴啟動器
在項目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動器,示例代碼如下 :
<dependency><groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
注意:使用Spring Initializr方式搭建的Spring Boot項目,會自動加入spring-boot-starter-test測試依賴啟動器,無需再手動添加。
編寫單元測試類和測試方法
使用Spring Initializr方式搭建的Spring Boot項目,會在src.test.java測試目錄下自動創建與項目主程序啟動類對應的單元測試類
@RunWith(SpringRunner.class) // 測試啟動器,并加載Spring Boot測試注解@SpringBootTest // 標記為Spring Boot單元測試類,并加載項目的ApplicationContext上下文環境
public class SpringbootDemoApplicationTests {
@Autowired
private HelloController helloController;
@Test
public void test01() {
String demo = helloController.hello();
System.out.println(demo);
}
}
上述代碼中,先使用@Autowired注解注入了HelloController實例對象,然后在test01()方法中調用了HelloController類中對應的請求控制方法hello(),并輸出打印結果。
熱部署
在開發過程中,通常會對一段業務代碼不斷地修改測試,在修改之后往往需要重啟服務,有些服務需要加載很久才能啟動成功,這種不必要的重復操作極大的降低了程序開發效率。為此,SpringBoot框架專門提供了進行熱部署的依賴啟動器,用于進行項目熱部署,而無需手動重啟項目。
演示:
添加spring-boot-devtools熱部署依賴啟動器
在Spring Boot項目進行熱部署測試之前,需要先在項目的pom.xml文件中添加spring-boot-devtools熱部署依賴啟動器。
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
dependency>
由于使用的是IDEA開發工具,添加熱部署依賴后可能沒有任何效果,接下來還需要針對IDEA開發工具進行熱部署相關的功能設置。
IDEA工具熱部署設置
選擇IDEA工具界面的【File】->【Settings】選項,打開Compiler面板設置頁面
選擇Build下的Compiler選項,在右側勾選“Build project automatically”選項將項目設置為自動編譯,單擊【Apply】→【OK】按鈕保存設置
在項目任意頁面中使用組合快捷鍵“Ctrl+Shift+Alt+/”打開Maintenance選項框,選中并打開Registry頁面,具體如下圖所示:
列表中找到“compiler.automake.allow.when.app.running”,將該選項后的Value值勾選,用于指定IDEA工具在程序運行過程中自動編譯,最后單擊【Close】按鈕完成設置。
全局配置文件
全局配置文件能夠對一些默認配置值進行修改。Spring Boot使用一個application.properties或者application.yaml的文件作為全局配置文件,該文件存放在src/main/resource目錄或者類路徑的/config,一般會選擇resource目錄。接下來,將針對這兩種全局配置文件進行講解 :
application.properties配置文件
使用Spring Initializr方式構建Spring Boot項目時,會在resource目錄下自動生成一個空的application.properties文件,Spring Boot項目啟動時會自動加載application.properties文件。我們可以在application.properties文件中定義Spring Boot項目的相關屬性,當然,這些相關屬性可以是系統屬性、環境變量、命令參數等信息,也可以是自定義配置文件名稱和位置
server.port=8081spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.config.additional-location=
spring.config.location=
spring.config.name=application
接下來,通過一個案例對Spring Boot項目中application.properties配置文件的具體使用進行講解
演示:
??預先準備了兩個實體類文件,后續會演示將application.properties配置文件中的自定義配置屬性注入到Person實體類的對應屬性中
先在項目的com.lagou包下創建一個pojo包,并在該包下創建兩個實體類Pet和Person
public class Pet {private String type;
private String name;
// 省略屬性getXX()和setXX()方法
// 省略toString()方法
}
@Component //用于將Person類作為Bean注入到Spring容器中
@ConfigurationProperties(prefix = "person") //將配置文件中以person開頭的屬性注入到該類中
public class Person {
private int id; //id
private String name; //名稱
private List hobby; //愛好
private String[] family; //家庭成員
private Map map;
private Pet pet; //寵物
// 省略屬性getXX()和setXX()方法
// 省略toString()方法
}
@ConfigurationProperties(prefix = “person”)注解的作用是將配置文件中以person開頭的屬性值通過setXX()方法注入到實體類對應屬性中。
@Component注解的作用是將當前注入屬性值的Person類對象作為Bean組件放到Spring容器中,只有這樣才能被@ConfigurationProperties注解進行賦值。
2、打開項目的resources目錄下的application.properties配置文件,在該配置文件中編寫需要對Person類設置的配置屬性
person.id=1person.name=tom
person.family=father, mother
person.hobby=吃飯, 睡覺, 打豆豆
person.map.k1=v1
person.map.k2=v2
person.pet.type=dog
person.pet.name=旺財
編寫application.properties配置文件時,由于要配置的Person對象屬性是我們自定義的,Spring Boot無法自動識別,所以不會有任何書寫提示。在實際開發中,為了出現代碼提示的效果來方便配置,在使用@ConfigurationProperties注解進行配置文件屬性值注入時,可以在pom.xml文件中添加一個Spring Boot提供的配置處理器依賴。
<dependency><groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-configuration-processorartifactId>
<optional>trueoptional>
dependency>
在pom.xml中添加上述配置依賴后,還需要重新運行項目啟動類或者使用“Ctrl+F9”快捷鍵(即 Build Project)重構當前Spring Boot項目方可生效。
3、查看application.properties配置文件是否正確,同時查看屬性配置效果,打開通過IDEA工具創建的項目測試類,在該測試類中引入Person實體類Bean,并進行輸出測試
@RunWith(SpringRunner.class) // 測試啟動器,并加載Spring Boot測試注解@SpringBootTest // 標記為Spring Boot單元測試類,并加載項目的ApplicationContext上下文環境
class SpringbootDemoApplicationTests {
// 配置測試
@Autowired
private Person person;
@Test
void test02() {
System.out.println(person);
}
}
打印結果:
可以看出,測試方法configurationTest()運行成功,同時正確打印出了Person實體類對象。至此,說明 application.properties 配置文件屬性配置正確,并通過相關注解自動完成了屬性注入。
application.yaml配置文件
YAML文件格式是Spring Boot支持的一種JSON超集文件格式,相較于傳統的Properties配置文件,YAML文件以數據為核心,是一種更為直觀且容易被電腦識別的數據序列化格式。application.yaml配置文件的工作原理和application.properties是一樣的,只不過yaml格式配置文件看起來更簡潔一些。
YAML文件的擴展名可以使用.yml或者.yaml。
application.yml文件使用 “key:(空格)value”格式配置屬性,使用縮進控制層級關系。
這里,針對不同數據類型的屬性值,介紹一下YAML
value值為普通數據類型(例如數字、字符串、布爾等)
當YAML配置文件中配置的屬性值為普通數據類型時,可以直接配置對應的屬性值,同時對于字符串類型的屬性值,不需要額外添加引號,示例代碼如下:
server:port: 8081
path: /hello
上述代碼用于配置server的port和path屬性,port和path屬于一個級別
value值為數組和單列集合
當YAML配置文件中配置的屬性值為數組或單列集合類型時,主要有兩種書寫方式:縮進式寫法和行內式寫法。其中,縮進式寫法還有兩種表示形式,示例代碼如下:
person:hobby:
- play
- read
- sleep
或者使用如下示例形式
person:hobby:
play,
read,
sleep
上述代碼中,在YAML配置文件中通過兩種縮進式寫法對person對象的單列集合(或數組)類型的愛好hobby賦值為play、read和sleep。其中一種形式為“-(空格)屬性值”,另一種形式為多個屬性值之前加英文逗號分隔(注意,最后一個屬性值后不要加逗號)。
行內式寫法:
person:hobby: [play,read,sleep]
通過上述示例對比發現,YAML配置文件的行內式寫法更加簡明、方便。另外,包含屬性值的中括號“[]”還可以進一步省略,在進行屬性賦值時,程序會自動匹配和校對。
value值為Map集合和對象
當YAML配置文件中配置的屬性值為Map集合或對象類型時,YAML配置文件格式同樣可以分為兩種書寫方式:縮進式寫法和行內式寫法。
其中,縮進式寫法的示例代碼如下:
person:map:
k1: v1
k2: v2
對應的行內式寫法示例代碼如下
person:map: {k1: v1,k2: v2}
在YAML配置文件中,配置的屬性值為Map集合或對象類型時,縮進式寫法的形式按照YAML文件格式編寫即可,而行內式寫法的屬性值要用大括號“{}”包含。
接下來,在Properties配置文件演示案例基礎上,通過配置application.yaml配置文件對Person對象進行賦值,具體使用如下:
#對實體類對象Person進行屬性配置person:
id: 1
name: tom
hobby: [吃飯,睡覺,打豆豆]
family: [father,mother]
map: {k1: v1,k2: v2}
pet: {type: dog,name: 旺財}
配置文件屬性值的注入
使用Spring Boot全局配置文件設置屬性時:
如果配置屬性是Spring Boot已有屬性,例如服務端口server.port,那么Spring Boot內部會自動掃描并讀取這些配置文件中的屬性值并覆蓋默認屬性。
如果配置的屬性是用戶自定義屬性,例如剛剛自定義的Person實體類屬性,還必須在程序中注入這些配置屬性方可生效。
Spring Boot支持多種注入配置文件屬性的方式,下面來介紹如何使用注解 @ConfigurationProperties和 @Value 注入屬性。
使用@ConfigurationProperties注入屬性
Spring Boot提供的@ConfigurationProperties注解用來快速、方便地將配置文件中的自定義屬性值批量注入到某個Bean對象的多個對應屬性中。假設現在有一個配置文件,如果使用 @ConfigurationProperties 注入配置文件的屬性,示例代碼如下:
@Component //用于將Person類作為Bean注入到Spring容器中@ConfigurationProperties(prefix = "person") //將配置文件中以person開頭的屬性注入到該類中
public class Person {
private int id; //id
private String name; //名稱
private List hobby; //愛好
private String[] family; //家庭成員
private Map map;
private Pet pet; //寵物
// 省略getXxx()和setXxx()方法
}
application.yml配置文件
person:id: 1
name: tom
hobby: [吃飯, 睡覺, 打豆豆]
family: [father, mother]
map:
k1: v1
k2: v2
pet:
type: dog
name: 旺財
上述代碼使用@Component和@ConfigurationProperties(prefix = “person”)將配置文件中的每個屬性映射到person類組件中。需要注意的是,使用 @ConfigurationProperties。
使用@Value注入屬性
@Value注解是Spring框架提供的,用來讀取配置文件中的屬性值并逐個注入到Bean對象的對應屬性中,Spring Boot框架從Spring框架中對@Value注解進行了默認繼承,所以在Spring Boot框架中還可以使用該注解讀取和注入配置文件屬性值。
@Componentpublic class Person {
@Value("${person.id}")
private int id;
}
上述代碼中,使用@Component和@Value注入Person實體類的id屬性。其中,@Value不僅可以將配置文件的屬性注入Person的id屬性,還可以直接給id屬性賦值,這點是@ConfigurationProperties不支持的。
自定義配置
Spring Boot免除了項目中大部分的手動配置,對于一些特定情況,我們可以通過修改全局配置文件以適應具體生產環境,可以說,幾乎所有的配置都可以寫在application.peroperties文件中,Spring Boot會自動加載全局配置文件從而免除我們手動加載的煩惱。但是,如果我們自定義配置文件,Spring Boot是無法識別這些配置文件的,此時就需要我們手動加載。接下來,將針對Spring Boot的自定義配置文件及其加載方式進行講解。
使用@PropertySource加載配置文件
對于這種加載自定義配置文件的需求,可以使用@PropertySource注解結合@Configuration注解配置類的方式來實現。@PropertySource注解用于指定自定義配置文件的具體位置和名稱。同時,為了保證Spring Boot能夠掃描該注解,還需要類上添加@Configuration注解將實體類作為自定義配置類。
當然,如果需要將自定義配置文件中的屬性值注入到對應類的屬性中,可以使用 @ConfigurationProperties或者@Value注解進行屬性值注入。
演示:
(1)打開Spring Boot項目的resources目錄,在項目的類路徑下新建一個test.properties自定義配置文件,在該配置文件中編寫需要設置的配置屬性。
#對實體類對象MyProperties進行屬性配置test.id=110
test.name=test
(2)在com.cyd.pojo包下新創建一個配置類MyProperties,提供test.properties自定義配置文件中對應的屬性,并根據@PropertySource注解的使用進行相關配置
@EnableConfigurationProperties(MyProperties.class) // 開啟對應配置類的屬性注入功能@ConfigurationProperties(prefix = "test")
@PropertySource(value = "classpath:test.properties")
@Configuration
public class MyProperties {
private Integer id;
private String name;
// 此處省略getXxx()和setXxx()方法
}
主要是一個自定義配置類,通過相關注解引入了自定義的配置文件,并完成了自定義屬性值的注入。針對示例中的幾個注解,具體說明如下
@Configuration注解表示當前類是一個自定義配置類,并添加為Spring容器的組件,這里也可以使用傳統的@Component注解;
@PropertySource(“classpath:test.properties”)注解指定了自定義配置文件的位置和名稱,此示例表示自定義配置文件為classpath類路徑下的test.properties文件;
@ConfigurationProperties(prefix = “test”)注解將上述自定義配置文件test.properties中以test開頭的屬性值注入到該配置類屬性中。
如果配置類上使用的是@Component注解而非@Configuration注解,那么@EnableConfigurationProperties注解還可以省略
(3)進行測試
@RunWith(SpringRunner.class) // 測試啟動器,并加載Spring Boot測試注解@SpringBootTest // 標記為Spring Boot單元測試類,并加載項目的ApplicationContext上下文環境
class SpringbootDemoApplicationTests {
@Autowired
private MyProperties myProperties;
@Test
public void myPropertiesTest() {
System.out.println(myProperties);
}
}
使用@Configuration編寫自定義配置類
在Spring Boot框架中,推薦使用配置類的方式向容器中添加和配置組件
在Spring Boot框架中,通常使用@Configuration注解定義一個配置類,Spring Boot會自動掃描和識別配置類,從而替換傳統Spring框架中的XML配置文件。
當定義一個配置類后,還需要在類中的方法上使用@Bean注解進行組件配置,將方法的返回對象注入到Spring容器中,并且組件名稱默認使用的是方法名,當然也可以使用@Bean注解的name或value屬性自定義組件的名稱。
演示:
(1)在項目下新建一個com.cyd.config包,并在該包下新創建一個類MyService,該類中不需要編寫任何代碼
public class MyService {}
創建了一個空的MyService類,而該類目前沒有添加任何配置和注解,因此還無法正常被Spring Boot掃描和識別
(2) 在項目的com.cyd.config包下,新建一個類MyConfig,并使用@Configuration注解將該類聲明一個配置類,內容如下:
@Configuration // 定義該類是一個配置類public class MyConfig {
// 將返回值對象作為組件添加到Spring容器中,該組件id默認為方法名
@Bean
public MyService myService() {
return new MyService();
}
}
MyConfig是@Configuration注解聲明的配置類(類似于聲明了一個XML配置文件),該配置類會被Spring Boot自動掃描識別;使用@Bean注解的myService()方法,其返回值對象會作為組件添加到了Spring容器中(類似于XML配置文件中的標簽配置),并且該組件的id默認是方法名myService。
(3)測試類
@RunWith(SpringRunner.class) // 測試啟動器,并加載Spring Boot測試注解@SpringBootTest // 標記為Spring Boot單元測試類,并加載項目的ApplicationContext上下文環境
class SpringbootDemoApplicationTests {
@Autowired
private ApplicationContext applicationContext;
@Test
public void iocTest() {
System.out.println(applicationContext.containsBean("myService"));
}
}
上述代碼中,先通過@Autowired注解引入了Spring容器實例ApplicationContext,然后在測試方法iocTest()中測試查看該容器中是否包括id為myService的組件。執行測試方法iocTest() ,查看控制臺輸出效果,結果如下:
從測試結果可以看出,測試方法iocTest()運行成功,顯示運行結果為true,表示Spirng的IOC容器中也已經包含了id為myService的實例對象組件,說明使用自定義配置類的形式完成了向Spring容器進行組件的添加和配置。
隨機數設置及參數間引用
在Spring Boot配置文件中設置屬性時,除了可以像前面示例中顯示的配置屬性值外,還可以使用隨機值和參數間引用對屬性值進行設置。下面,針對配置文件中這兩種屬性值的設置方式進行講解。
隨機值設置
在Spring Boot配置文件中,隨機值設置使用到了Spring Boot內嵌的 RandomValuePropertySource類,對一些隱秘屬性值或者測試用例屬性值進行隨機值注入隨機值設置的語法格式為${random.xx},xx表示需要指定生成的隨機數類型和范圍,它可以生成隨機的整數、uuid或字符串,示例代碼如下:
my.secret=${random.value} // 配置隨機值my.number=${random.int} // 配置隨機整數
my.bignumber=${random.long} // 配置隨機long類型數
my.uuid=${random.uuid} // 配置隨機uuid類型數
my.number.less.than.ten=${random.int(10)} // 配置小于10的隨機整數
my.number.in.range=${random.int[1024,65536]} // 配置范圍在[1024,65536]之間的隨機整數
上述代碼中,使用RandomValuePropertySource類中random提供的隨機數類型,分別展示了不同類型隨機值的設置示例。
參數間引用
在Spring Boot配置文件中,配置文件的屬性值還可以進行參數間的引用,也就是在后一個配置的屬性值中直接引用先前已經定義過的屬性,這樣可以直接解析其中的屬性值了。
使用參數間引用的好處就是,在多個具有相互關聯的配置屬性中,只需要對其中一處屬性預先配置,其它地方都可以引用,省去了后續多處修改的麻煩
參數間引用的語法格式為${xx},xx表示先前在配置文件中已經配置過的屬性名,示例代碼如下
app.name=MyAppapp.description=${app.name} is a Spring Boot application
上述參數間引用設置示例中,先設置了“app.name=MyApp”,將app.name屬性的屬性值設置為了MyApp;接著,在app.description屬性配置中,使用${app.name}對前一個屬性值進行了引用。
接下來,通過一個案例來演示使用隨機值設置以及參數間引用的方式進行屬性設置的具體使用和效果,具體步驟如下
(1)打開Spring Boot項目resources目錄下的application.properties配置文件,在該配置文件中分別通過隨機值設置和參數間引用來配置兩個測試屬性,示例代碼如下
# 隨機值設置以及參數間引用配置tom.age=${random.int[10,20]}
tom.description=tom的年齡可能是${tom.age}
在上述application.properties配置文件中,先使用隨機值設置了tom.age屬性的屬性值,該屬性值設置在了[10,20]之間,隨后使用參數間引用配置了tom.description屬性。
(2)打開\項目的測試類,在該測試類中新增字符串類型的description屬性,并將配置文件中的 tom.description屬性進行注入,然后新增一個測試方法進行輸出測試,示例代碼如下
@Value("${tom.description}")private String description;
@Test
public void placeholderTest() {
System.out.println(description);
}
上述代碼中,通過@Value("${tom.description}")注解將配置文件中的tom.description屬性值注入到了對應的description屬性中,在測試方法placeholderTest()中對該屬性值進行了輸出打印。執行測試方法placeholderTest() ,查看控制臺輸出效果。
總結
可以看出,測試方法placeholderTest()運行成功,并打印出了屬性description的注入內容,該內容與配置文件中配置的屬性值保持一致。接著,重復執行測試方法placeholderTest(),查看控制臺輸出語句中顯示的年齡就會在[10,20]之間隨機顯示。
總結
以上是生活随笔為你收集整理的springboot test_精益求精!Spring Boot 知识点全面回顾,带你重新细读源码!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php验证密码后跳转_php-larav
- 下一篇: layui向body添加html_lay