




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第13章SpringBoot入門(mén)學(xué)習(xí)目的與要求本章主要介紹了SpringBoot基礎(chǔ)知識(shí),包括核心注解@SpringBootApplication、基本配置、讀取應(yīng)用配置、日志配置、自動(dòng)配置原理等內(nèi)容。通過(guò)本章的學(xué)習(xí),掌握如何構(gòu)建SpringBoot應(yīng)用的開(kāi)發(fā)環(huán)境,了解SpringBoot的運(yùn)行原理。《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄13.1SpringBoot概述13.2第一個(gè)SpringBoot應(yīng)用13.3SpringBoot的基本配置13.4讀取應(yīng)用配置13.5日志配置13.6SpringBoot的自動(dòng)配置原理《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.1.1什么是SpringBootSpringBoot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。使用SpringBoot框架可以做到專注于Spring應(yīng)用的開(kāi)發(fā),無(wú)須過(guò)多關(guān)注樣板化的配置。在SpringBoot框架中,使用“約定優(yōu)于配置(COC,ConventionOverConfiguration)”的理念。針對(duì)企業(yè)應(yīng)用開(kāi)發(fā),提供了符合各種場(chǎng)景的spring-boot-starter自動(dòng)配置依賴模塊,這些模塊都是基于“開(kāi)箱即用”的原則,進(jìn)而使企業(yè)應(yīng)用開(kāi)發(fā)更加快捷和高效??梢哉f(shuō),SpringBoot是開(kāi)發(fā)者和Spring框架的中間層,目的是幫助開(kāi)發(fā)者管理應(yīng)用的配置,提供應(yīng)用開(kāi)發(fā)中常見(jiàn)配置的默認(rèn)處理(即約定優(yōu)于配置),簡(jiǎn)化Spring應(yīng)用的開(kāi)發(fā)和運(yùn)維,降低開(kāi)發(fā)人員對(duì)框架的關(guān)注度,使開(kāi)發(fā)人員把更多精力放在業(yè)務(wù)邏輯代碼上?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.1.2SpringBoot的優(yōu)點(diǎn)1.使編碼變得簡(jiǎn)單:推薦使用注解。2.使配置變得快捷:自動(dòng)配置、快速構(gòu)建項(xiàng)目、快速集成第三方技術(shù)的能力。3.使部署變得簡(jiǎn)便:內(nèi)嵌Tomcat、Jetty等Web容器。4.使監(jiān)控變得容易:自帶項(xiàng)目監(jiān)控?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.1.3SpringBoot的主要特性1.約定優(yōu)于配置SpringBoot遵循“約定優(yōu)于配置”的原則,只需很少的配置,大多數(shù)情況直接使用默認(rèn)配置即可。2.獨(dú)立運(yùn)行的Spring應(yīng)用SpringBoot可以以jar包的形式獨(dú)立運(yùn)行。使用java-jar命令或者在項(xiàng)目的主程序中執(zhí)行main方法運(yùn)行SpringBoot應(yīng)用(項(xiàng)目)。3.內(nèi)嵌Web容器內(nèi)嵌Servlet容器,SpringBoot可以選擇內(nèi)嵌Tomcat、Jetty等Web容器,無(wú)須以war包形式部署應(yīng)用?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.1.3SpringBoot的主要特性4.提供starter簡(jiǎn)化Maven配置SpringBoot提供了一系列的starterpom簡(jiǎn)化Maven的依賴加載,基本上可以做到自動(dòng)化配置,高度封裝,開(kāi)箱即用。5.自動(dòng)配置SpringSpringBoot根據(jù)項(xiàng)目依賴(在類路徑中的jar包、類)自動(dòng)配置Spring框架,極大減少了項(xiàng)目的配置。6.提供準(zhǔn)生產(chǎn)的應(yīng)用監(jiān)控SpringBoot提供基于HTTP、SSH、TELNET對(duì)運(yùn)行的項(xiàng)目進(jìn)行跟蹤監(jiān)控。7.無(wú)代碼生成和XML配置SpringBoot不是借助于代碼生成來(lái)實(shí)現(xiàn)的,而是通過(guò)條件注解來(lái)實(shí)現(xiàn)的。提倡使用Java配置和注解配置相結(jié)合的配置方式。《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄13.1SpringBoot概述13.2第一個(gè)SpringBoot應(yīng)用13.3SpringBoot的基本配置13.4讀取應(yīng)用配置13.5日志配置13.6SpringBoot的自動(dòng)配置原理《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.2.1Maven簡(jiǎn)介ApacheMaven是一個(gè)軟件項(xiàng)目管理工具?;陧?xiàng)目對(duì)象模型(ProjectObjectModel,POM)的理念,通過(guò)一段核心描述信息來(lái)管理項(xiàng)目構(gòu)建、報(bào)告和文檔信息。在Java項(xiàng)目中,Maven主要完成兩件工作:①統(tǒng)一開(kāi)發(fā)規(guī)范與工具;②統(tǒng)一管理jar包。Maven統(tǒng)一管理項(xiàng)目開(kāi)發(fā)所需要的jar包,但這些jar包將不再包含在項(xiàng)目?jī)?nèi)(即不在lib目錄下),而是存放于倉(cāng)庫(kù)當(dāng)中。1.中央倉(cāng)庫(kù)存放開(kāi)發(fā)過(guò)程中所有jar包,例如JUnit,都可以通過(guò)互聯(lián)網(wǎng)從中央倉(cāng)庫(kù)中下載,倉(cāng)庫(kù)地址:。2.本地倉(cāng)庫(kù)本地計(jì)算機(jī)中的倉(cāng)庫(kù)。官方下載Maven的本地倉(cāng)庫(kù),配置在“%MAVEN_HOME%\conf\settings.xml”文件中,找到“l(fā)ocalRepository”即可?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.2.2Maven的pom.xmlMaven是基于項(xiàng)目對(duì)象模型的理念管理項(xiàng)目的,所以Maven的項(xiàng)目都有一個(gè)pom.xml配置文件來(lái)管理項(xiàng)目的依賴以及項(xiàng)目的編譯等功能?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.properties元素<properties><!--spring版本號(hào)-->
<spring.version>6.0.0</spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId>
<version>${spring.version}</version></dependency></dependencies>《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.dependencies元素<dependencies></dependencies>,此元素包含多個(gè)項(xiàng)目依賴需要使用的<dependency></dependency>元素?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.dependency元素<dependency><!--groupId組織的唯一標(biāo)識(shí)--><groupId>org.springframework</groupId><!--artifactId項(xiàng)目的唯一標(biāo)識(shí)-->
<artifactId>spring-core</artifactId> <!--version項(xiàng)目的版本號(hào)-->
<version>${spring.version}</version></dependency>《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
4.scope子元素在<dependency></dependency>元素中,有時(shí)使用<scope></scope>子元素管理依賴的部署。<scope></scope>子元素可以使用5個(gè)值:(1)compile(編譯范圍)compile是缺省值,即默認(rèn)范圍。依賴如果沒(méi)有提供范圍,那么該依賴的范圍就是編譯范圍。編譯范圍的依賴,在所有的classpath中可用,同時(shí)也會(huì)被打包發(fā)布。(2)provided(已提供范圍)provided表示已提供范圍,只有當(dāng)JDK或者容器已提供該依賴才可以使用。已提供范圍的依賴不是傳遞性的,也不會(huì)被打包發(fā)布?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
4.scope子元素(3)runtime(運(yùn)行時(shí)范圍)runtime范圍依賴在運(yùn)行和測(cè)試系統(tǒng)時(shí)需要,但在編譯時(shí)不需要。(4)test(測(cè)試范圍)test范圍依賴在一般的編譯和運(yùn)行時(shí)都不需要,它們只有在測(cè)試編譯和測(cè)試運(yùn)行階段可用。不會(huì)隨項(xiàng)目發(fā)布。(5)system(系統(tǒng)范圍)system范圍與provided范圍類似,但需要顯式提供包含依賴的JAR包,Maven不會(huì)在Repository中查找它?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.2.3使用IntelliJIDEA快速構(gòu)建SpringBoot應(yīng)用1.新建SpringProject打開(kāi)IDEA通過(guò)選擇菜單File->New->Project打開(kāi)新建項(xiàng)目窗口。在新建項(xiàng)目窗口左側(cè)選中SpringInitializr選項(xiàng)?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.選擇項(xiàng)目依賴《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.編寫(xiě)測(cè)試代碼packagecom.ch.ch13_1.test;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassTestController{@GetMapping("/hello")publicStringhello(){return"您好,SpringBoot!";}}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
4.應(yīng)用程序的App類在應(yīng)用ch13_1的com.ch.ch13_1包中,自動(dòng)生成了應(yīng)用程序的App類Ch131Application?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
5.運(yùn)行main方法啟動(dòng)SpringBoot應(yīng)用《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
6.測(cè)試SpringBoot應(yīng)用啟動(dòng)SpringBoot應(yīng)用后,默認(rèn)訪問(wèn)地址為:http://localhost:8080/,將項(xiàng)目路徑直接設(shè)為根路徑,這是SpringBoot的默認(rèn)設(shè)置。因此,我們可以通過(guò)http://localhost:8080/hello測(cè)試應(yīng)用(hello與測(cè)試類TestController中的@GetMapping(“/hello”)對(duì)應(yīng))?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄13.1SpringBoot概述13.2第一個(gè)SpringBoot應(yīng)用13.3SpringBoot的基本配置13.4讀取應(yīng)用配置13.5日志配置13.6SpringBoot的自動(dòng)配置原理《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.3.1啟動(dòng)類和核心注解@SpringBootApplicationSpringBoot應(yīng)用通常都有一個(gè)名為*Application的程序入口類,該入口類需要使用SpringBoot的核心注解@SpringBootApplication標(biāo)注為應(yīng)用的啟動(dòng)類。另外,該入口類有一個(gè)標(biāo)準(zhǔn)的Java應(yīng)用程序的main方法,在main方法中通過(guò)“SpringApplication.run(*Application.class,args);”啟動(dòng)SpringBoot應(yīng)用。SpringBoot的核心注解@SpringBootApplication是一個(gè)組合注解,主要組合了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.@SpringBootConfiguration注解@SpringBootConfiguration是SpringBoot應(yīng)用的配置注解,該注解也是一個(gè)組合注解,源代碼可以從spring-boot-x.y.z.jar依賴包中查看org/springframework/boot/SpringBootConfiguration.java?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.@EnableAutoConfiguration注解@EnableAutoConfiguration注解可以讓SpringBoot根據(jù)當(dāng)前應(yīng)用項(xiàng)目所依賴的JAR包自動(dòng)配置項(xiàng)目的相關(guān)配置。例如,在SpringBoot項(xiàng)目的pom.xml文件中添加了spring-boot-starter-web依賴,SpringBoot項(xiàng)目會(huì)自動(dòng)添加Tomcat和SpringMVC的依賴,同時(shí)對(duì)Tomcat和SpringMVC進(jìn)行自動(dòng)配置?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.@ComponentScan注解該注解的功能是讓SpringBoot自動(dòng)掃描@SpringBootApplication所在類的同級(jí)包以及它的子包中的配置,所以建議將@SpringBootApplication注解的入口類放置在項(xiàng)目包中(GroupId+ArtifactId組合的包名),并將用戶自定義的程序放置在項(xiàng)目包及其子包中,這樣可以保證SpringBoot自動(dòng)掃描項(xiàng)目所有包中的配置?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.3.2SpringBoot的全局配置文件SpringBoot的全局配置文件(perties或application.yml)位于SpringBoot應(yīng)用的src/main/resources目錄下。1.設(shè)置端口號(hào)在SpringBoot應(yīng)用的src/main/resources目錄下找到名為perties的全局配置文件,添加如下配置內(nèi)容:server.port=8888可以將內(nèi)嵌的Tomcat的默認(rèn)端口改為8888?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.設(shè)置Web應(yīng)用的上下文路徑如果開(kāi)發(fā)者想設(shè)置一個(gè)Web應(yīng)用程序的上下文路徑,可以在perties文件中配置如下內(nèi)容:server.servlet.context-path=/XXX這時(shí)應(yīng)該通過(guò)“http://localhost:8080/XXX/testStarters”訪問(wèn)如下控制器類中的請(qǐng)求處理方法:@GetMapping("/testStarters")publicStringindex(){}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.配置文檔在SpringBoot的全局配置文件中,可以配置與修改多個(gè)參數(shù),讀者想了解參數(shù)的詳細(xì)說(shuō)明和描述可以查看官方文檔說(shuō)明:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.application-properties?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.3.3SpringBoot的StartersSpringBoot提供了許多簡(jiǎn)化企業(yè)級(jí)開(kāi)發(fā)的“開(kāi)箱即用”的Starters。SpringBoot項(xiàng)目只要使用所需要的Starters,SpringBoot即可自動(dòng)關(guān)聯(lián)項(xiàng)目開(kāi)發(fā)所需要的相關(guān)依賴。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>SpringBoot將自動(dòng)關(guān)聯(lián)Web開(kāi)發(fā)的相關(guān)依賴,如tomcat、spring-webmvc等,進(jìn)而對(duì)Web開(kāi)發(fā)的支持,并將相關(guān)技術(shù)的配置實(shí)現(xiàn)自動(dòng)配置。通過(guò)訪問(wèn)“https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using.build-systems.starters”官網(wǎng),可以查看SpringBoot官方提供的Starters?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄13.1SpringBoot概述13.2第一個(gè)SpringBoot應(yīng)用13.3SpringBoot的基本配置13.4讀取應(yīng)用配置13.5日志配置13.6SpringBoot的自動(dòng)配置原理《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.4讀取應(yīng)用配置SpringBoot提供了三種方式讀取項(xiàng)目的perties配置文件的內(nèi)容。此三種方式分別為:Environment類、@Value注解以及@ConfigurationProperties注解?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.4.1EnvironmentEnvironment是一個(gè)通用的讀取應(yīng)用程序運(yùn)行時(shí)的環(huán)境變量的類,可以通過(guò)key-value方式讀取perties、命令行輸入?yún)?shù)、系統(tǒng)屬性、操作系統(tǒng)環(huán)境變量等。【例13-1】使用Environment類讀取perties配置文件的內(nèi)容?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.創(chuàng)建SpringBootWeb應(yīng)用ch13_2使用IDEA快速創(chuàng)建SpringBootWeb應(yīng)用ch13_2,同時(shí)給應(yīng)用ch13_2添加如圖13.6所示的依賴。在13.4.3節(jié)使用@ConfigurationProperties注解進(jìn)行讀取配置時(shí),需要SpringConfigurationProcessor依賴。需要注意的是,使用Lombok時(shí)需要事先給IDEA安裝Lombok插件?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.添加配置文件內(nèi)容在應(yīng)用ch13_2的src/main/resources目錄下,找到全局配置文件perties,并添加如下內(nèi)容:test.msg=readconfig《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.創(chuàng)建控制器類EnvReaderConfigController@RestControllerpublicclassEnvReaderConfigController{ @Autowired
privateEnvironmentenv; @GetMapping("/testEnv") publicStringtestEnv(){
return"方法一:"+env.getProperty("test.msg"); //test.msg為配置文件perties中的key }}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
啟動(dòng)與測(cè)試應(yīng)用4.啟動(dòng)SpringBoot應(yīng)用運(yùn)行Ch132Application類的main方法,啟動(dòng)SpringBoot應(yīng)用。5.測(cè)試應(yīng)用啟動(dòng)SpringBoot應(yīng)用后,默認(rèn)訪問(wèn)地址為:http://localhost:8080/,將項(xiàng)目路徑直接設(shè)為根路徑,這是SpringBoot的默認(rèn)設(shè)置。因此,我們可以通過(guò)http://localhost:8080/testEnv測(cè)試應(yīng)用(testEnv與控制器類ReaderConfigController中的@GetMapping("/testEnv")對(duì)應(yīng))《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.4.2@Value使用@Value注解讀取配置文件內(nèi)容示例代碼如下:@Value("${test.msg}")//test.msg為配置文件perties中的keyprivateStringmsg;//通過(guò)@Value注解將配置文件中key對(duì)應(yīng)的value賦值給變量msg【例13-2】使用@Value注解讀取配置文件內(nèi)容。@RestControllerpublicclassValueReaderConfigController{
@Value("${test.msg}")privateStringmsg; @GetMapping("/testValue") publicStringtestValue(){
return"方法二:"+msg; }}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.4.3@ConfigurationProperties使用@ConfigurationProperties首先建立配置文件與對(duì)象的映射關(guān)系,然后在控制器方法中使用@Autowired注解將對(duì)象注入?!纠?3-3】使用@ConfigurationProperties讀取配置文件內(nèi)容?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.添加配置文件內(nèi)容#nestSimplepropertiesobj.sname=chenhengobj.sage=88#Listpropertiesobj.hobby[0]=runningobj.hobby[1]=basketball#MapPropertiesobj.city.cid=dlame=dalian《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.建立配置文件與對(duì)象的映射關(guān)系@Component//使用Component注解,聲明一個(gè)組件,被控制器依賴注入@ConfigurationProperties(prefix="obj")//obj為配置文件中key的前綴@DatapublicclassStudentProperties{ privateStringsname; privateintsage; privateList<String>hobby; privateMap<String,String>city; @Override publicStringtoString(){
return"StudentProperties[sname="+sname
+",sage="+sage
+",hobby0="+hobby.get(0)
+",hobby1="+hobby.get(1)
+",city="+city+"]";}}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.創(chuàng)建控制器類ConfigurationPropertiesController@RestControllerpublicclassConfigurationPropertiesController{
@Autowired StudentPropertiesstudentProperties; @GetMapping("/testConfigurationProperties") publicStringtestConfigurationProperties(){ returnstudentProperties.toString(); }}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.4.4@PropertySource可以使用@PropertySource注解找到項(xiàng)目的其他配置文件,然后結(jié)合13.4.1~13.4.3節(jié)中任意一種方式讀取即可?!纠?3-4】使用@PropertySource+@Value讀取其他配置文件內(nèi)容?!禞avaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.創(chuàng)建配置文件在ch13_2的src/main/resources目錄下創(chuàng)建配置文件perties和perties,并在perties文件中添加如下內(nèi)容:your.msg=hello.在perties文件中添加如下內(nèi)容:my.msg=testPropertySource《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.創(chuàng)建控制器類PropertySourceValueReaderOhterController@RestController@PropertySource({"perties","perties"})publicclassPropertySourceValueReaderOhterController{
@Value("${my.msg}")privateStringmymsg;@Value("${your.msg}")privateStringyourmsg; @GetMapping("/testProperty") publicStringtestProperty(){ return"其他配置文件perties:"+mymsg+"<br>" +"其他配置文件perties:"+yourmsg; }}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.啟動(dòng)并測(cè)試應(yīng)用《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄13.1SpringBoot概述13.2第一個(gè)SpringBoot應(yīng)用13.3SpringBoot的基本配置13.4讀取應(yīng)用配置13.5日志配置13.6SpringBoot的自動(dòng)配置原理《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.5日志配置默認(rèn)情況下,SpringBoot項(xiàng)目使用LogBack實(shí)現(xiàn)日志,使用apacheCommonsLogging作為日志接口。@RestControllerpublicclassLogTestController{
privateLoglog=LogFactory.getLog(LogTestController.class); @GetMapping("/testLog") publicStringtestLog(){
("測(cè)試日志"); return"測(cè)試日志"; }}《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.5日志配置日志級(jí)別有ERROR、WARN、INFO、DEBUG和TRACE。SpringBoot默認(rèn)的日志級(jí)別為INFO,日志信息可以打印到控制臺(tái)。但開(kāi)發(fā)者可以自己設(shè)定SpringBoot項(xiàng)目的日志輸出級(jí)別,例如在perties配置文件中加入以下配置:#設(shè)定日志的默認(rèn)級(jí)別為infologging.level.root=info#設(shè)定org包下的日志級(jí)別為warn=warn#設(shè)定com.ch.ch13_1包下的日志級(jí)別為debug.ch.ch13_1=debug《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.5日志配置SpringBoot項(xiàng)目默認(rèn)并沒(méi)有輸出日志到文件,但開(kāi)發(fā)者可以在perties配置文件中指定日志輸出到文件,配置示例如下:logging.file=my.log日志輸出到my.log文件,該日志文件位于SpringBoot項(xiàng)目運(yùn)行的當(dāng)前目錄(項(xiàng)目工程目錄下)。也可以指定日志文件目錄,配置示例如下:logging.file=c:/log/my.log這樣將在c:/log目錄下生成一個(gè)名為my.log的日志文件。不管日志文件位于何處,當(dāng)日志文件大小到達(dá)10MB時(shí),將自動(dòng)生成一個(gè)新日志文件。《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄13.1SpringBoot概述13.2第一個(gè)SpringBoot應(yīng)用13.3SpringBoot的基本配置13.4讀取應(yīng)用配置13.5日志配置13.6SpringBoot的自動(dòng)配置原理《JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
13.6SpringBoot的自動(dòng)配置原理SpringBoot使用核心注解@SpringBootApplication將一個(gè)帶有main方法的類標(biāo)注為應(yīng)用的啟動(dòng)類。@SpringBootApplication注解最主要的功能之一是為SpringBoot開(kāi)啟了一個(gè)@EnableAutoConfiguration注解的自動(dòng)配置功能。@EnableAutoConfiguration注解主要利用了一個(gè)類名為AutoConfigurationImportSelector的選擇器向Spring容器自動(dòng)配置一些組件。@EnableAuto
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CHES 54-2021取水權(quán)交易可行性報(bào)告編制導(dǎo)則
- T/CHCA 002-2024熱噴涂稀土合金復(fù)合涂層鋼筋
- T/CGCC 70-2022大宗商品電子交易異常事件監(jiān)測(cè)規(guī)范
- T/CECS 10375-2024建筑幕墻用精密鋼型材
- T/CECS 10211-2022給水用電熔鋼骨架增強(qiáng)高密度聚乙烯復(fù)合管件
- T/CECS 10018-2019公用終端直飲水設(shè)備
- T/CCT 010-2021民用蘭炭產(chǎn)品規(guī)格及質(zhì)量
- T/CCSAS 030-2023傳熱單元操作機(jī)械化、自動(dòng)化設(shè)計(jì)方案指南
- T/CCMA 0047-2016盾構(gòu)機(jī)操作工
- T/CAQI 124-2020家用和類似用途飲用水處理裝置安全使用年限
- 作業(yè)治療學(xué)題庫(kù)第七章
- 醫(yī)學(xué)信息檢索與利用智慧樹(shù)知到答案章節(jié)測(cè)試2023年杭州醫(yī)學(xué)院
- 并網(wǎng)前設(shè)備電氣試驗(yàn)、繼電保護(hù)整定、通訊聯(lián)調(diào)
- 用表格為網(wǎng)頁(yè)布局教學(xué)設(shè)計(jì)
- GB/T 3733.1-1983卡套式端直通管接頭
- 病原微生物實(shí)驗(yàn)室生物安全管理手冊(cè)
- 上消化道出血病人的觀察與護(hù)理-課件
- 光纜測(cè)試報(bào)告
- 初中物理教育科學(xué)八年級(jí)下冊(cè)第十一章 機(jī)械與功《功》教學(xué)設(shè)計(jì)
- 神經(jīng)病學(xué)人衛(wèi)版習(xí)題集題庫(kù)
- (統(tǒng)編版小學(xué)語(yǔ)文教師)語(yǔ)文新課標(biāo)新舊對(duì)比變化
評(píng)論
0/150
提交評(píng)論