《 Spring Boot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》 課件 第3-5章 Spring Boot入門、Spring Boot核心、Spring Boot的Web開發(fā)_第1頁
《 Spring Boot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》 課件 第3-5章 Spring Boot入門、Spring Boot核心、Spring Boot的Web開發(fā)_第2頁
《 Spring Boot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》 課件 第3-5章 Spring Boot入門、Spring Boot核心、Spring Boot的Web開發(fā)_第3頁
《 Spring Boot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》 課件 第3-5章 Spring Boot入門、Spring Boot核心、Spring Boot的Web開發(fā)_第4頁
《 Spring Boot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》 課件 第3-5章 Spring Boot入門、Spring Boot核心、Spring Boot的Web開發(fā)_第5頁
已閱讀5頁,還剩165頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第3章SpringBoot入門學(xué)習(xí)目的與要求本章首先介紹什么是SpringBoot,然后介紹SpringBoot應(yīng)用的開發(fā)環(huán)境,最后介紹如何快速構(gòu)建一個SpringBoot應(yīng)用。通過本章的學(xué)習(xí),掌握如何構(gòu)建SpringBoot應(yīng)用的開發(fā)環(huán)境以及SpringBoot應(yīng)用?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄3.1SpringBoot概述3.2第一個SpringBoot應(yīng)用《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.1.1什么是SpringBootSpringBoot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。使用SpringBoot框架可以做到專注于Spring應(yīng)用的開發(fā),無須過多關(guān)注樣板化的配置。在SpringBoot框架中,使用“約定優(yōu)于配置(COC,ConventionOverConfiguration)”的理念。針對企業(yè)應(yīng)用開發(fā),提供了符合各種場景的spring-boot-starter自動配置依賴模塊,這些模塊都是基于“開箱即用”的原則,進(jìn)而使企業(yè)應(yīng)用開發(fā)更加快捷和高效??梢哉f,SpringBoot是開發(fā)者和Spring框架的中間層,目的是幫助開發(fā)者管理應(yīng)用的配置,提供應(yīng)用開發(fā)中常見配置的默認(rèn)處理(即約定優(yōu)于配置),簡化Spring應(yīng)用的開發(fā)和運(yùn)維,降低開發(fā)人員對框架的關(guān)注度,使開發(fā)人員把更多精力放在業(yè)務(wù)邏輯代碼上?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.1.2SpringBoot的優(yōu)點(diǎn)1.使編碼變得簡單:推薦使用注解。2.使配置變得快捷:自動配置、快速構(gòu)建項(xiàng)目、快速集成第三方技術(shù)的能力。3.使部署變得簡便:內(nèi)嵌Tomcat、Jetty等Web容器。4.使監(jiān)控變得容易:自帶項(xiàng)目監(jiān)控?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.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容器,無須以war包形式部署應(yīng)用?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.1.3SpringBoot的主要特性4.提供starter簡化Maven配置SpringBoot提供了一系列的starterpom簡化Maven的依賴加載,基本上可以做到自動化配置,高度封裝,開箱即用。5.自動配置SpringSpringBoot根據(jù)項(xiàng)目依賴(在類路徑中的jar包、類)自動配置Spring框架,極大減少了項(xiàng)目的配置。6.提供準(zhǔn)生產(chǎn)的應(yīng)用監(jiān)控SpringBoot提供基于HTTP、SSH、TELNET對運(yùn)行的項(xiàng)目進(jìn)行跟蹤監(jiān)控。7.無代碼生成和XML配置SpringBoot不是借助于代碼生成來實(shí)現(xiàn)的,而是通過條件注解來實(shí)現(xiàn)的。提倡使用Java配置和注解配置相結(jié)合的配置方式?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄3.1SpringBoot概述3.2第一個SpringBoot應(yīng)用《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.2.1Maven簡介ApacheMaven是一個軟件項(xiàng)目管理工具?;陧?xiàng)目對象模型(ProjectObjectModel,POM)的理念,通過一段核心描述信息來管理項(xiàng)目構(gòu)建、報(bào)告和文檔信息。在Java項(xiàng)目中,Maven主要完成兩件工作:①統(tǒng)一開發(fā)規(guī)范與工具;②統(tǒng)一管理jar包。Maven統(tǒng)一管理項(xiàng)目開發(fā)所需要的jar包,但這些jar包將不再包含在項(xiàng)目內(nèi)(即不在lib目錄下),而是存放于倉庫當(dāng)中。1.中央倉庫存放開發(fā)過程中所有jar包,例如JUnit,都可以通過互聯(lián)網(wǎng)從中央倉庫中下載,倉庫地址:。2.本地倉庫本地計(jì)算機(jī)中的倉庫。官方下載Maven的本地倉庫,配置在“%MAVEN_HOME%\conf\settings.xml”文件中,找到“l(fā)ocalRepository”即可?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.2.2Maven的pom.xmlMaven是基于項(xiàng)目對象模型的理念管理項(xiàng)目的,所以Maven的項(xiàng)目都有一個pom.xml配置文件來管理項(xiàng)目的依賴以及項(xiàng)目的編譯等功能。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.properties元素<properties><!--spring版本號-->

<spring.version>6.0.0</spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId>

<version>${spring.version}</version></dependency></dependencies>《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.dependencies元素<dependencies></dependencies>,此元素包含多個項(xiàng)目依賴需要使用的<dependency></dependency>元素?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.dependency元素<dependency><!--groupId組織的唯一標(biāo)識--><groupId>org.springframework</groupId><!--artifactId項(xiàng)目的唯一標(biāo)識-->

<artifactId>spring-core</artifactId> <!--version項(xiàng)目的版本號-->

<version>${spring.version}</version></dependency>《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.scope子元素在<dependency></dependency>元素中,有時使用<scope></scope>子元素管理依賴的部署。<scope></scope>子元素可以使用5個值:(1)compile(編譯范圍)compile是缺省值,即默認(rèn)范圍。依賴如果沒有提供范圍,那么該依賴的范圍就是編譯范圍。編譯范圍的依賴,在所有的classpath中可用,同時也會被打包發(fā)布。(2)provided(已提供范圍)provided表示已提供范圍,只有當(dāng)JDK或者容器已提供該依賴才可以使用。已提供范圍的依賴不是傳遞性的,也不會被打包發(fā)布?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.scope子元素(3)runtime(運(yùn)行時范圍)runtime范圍依賴在運(yùn)行和測試系統(tǒng)時需要,但在編譯時不需要。(4)test(測試范圍)test范圍依賴在一般的編譯和運(yùn)行時都不需要,它們只有在測試編譯和測試運(yùn)行階段可用。不會隨項(xiàng)目發(fā)布。(5)system(系統(tǒng)范圍)system范圍與provided范圍類似,但需要顯式提供包含依賴的JAR包,Maven不會在Repository中查找它?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.2.3使用IntelliJIDEA快速構(gòu)建SpringBoot應(yīng)用1.新建SpringProject打開IDEA通過選擇菜單File->New->Project打開新建項(xiàng)目窗口。在新建項(xiàng)目窗口左側(cè)選中SpringInitializr選項(xiàng)?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.選擇項(xiàng)目依賴《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.編寫測試代碼packagecom.ch.ch3.test;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassTestController{@GetMapping("/hello")publicStringhello(){return"您好,SpringBoot!";}}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.應(yīng)用程序的App類在應(yīng)用ch3的com.ch.ch3包中,自動生成了應(yīng)用程序的App類Ch3Application?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

5.運(yùn)行main方法啟動SpringBoot應(yīng)用《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

6.測試SpringBoot應(yīng)用啟動SpringBoot應(yīng)用后,默認(rèn)訪問地址為:http://localhost:8080/,將項(xiàng)目路徑直接設(shè)為根路徑,這是SpringBoot的默認(rèn)設(shè)置。因此,我們可以通過http://localhost:8080/hello測試應(yīng)用(hello與測試類TestController中的@GetMapping(“/hello”)對應(yīng))?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.2.4使用SpringToolSuite快速構(gòu)建SpringBoot應(yīng)用SpringToolSuite(STS)是一個定制版的Eclipse,專為Spring開發(fā)定制的,方便創(chuàng)建調(diào)試運(yùn)行維護(hù)Spring應(yīng)用。通過該工具,可以很輕易地生成一個Spring工程,比如Web工程,最令人興奮的是工程里的配置文件都將自動生成,開發(fā)者再也不用關(guān)注配置文件的格式及各種配置了。可登錄官網(wǎng)https://spring.io/tools下載SpringToolsforEclipse,本書采用的版本是spring-tool-suite-4-4.17.1.RELEASE-e4.26.0-win32.win32.x86_64.self-extracting.jar(內(nèi)置Java運(yùn)行環(huán)境OpenJDK)。該版本與Eclipse一樣,免安裝,解壓即可使用。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.新建SpringStarterProject通過選擇菜單“File->New->SpringStarterProject”打開如圖3.5所示的“NewSpringStarterProject”對話框?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.選擇項(xiàng)目依賴在圖3.5中輸入項(xiàng)目信息后,單擊“Next”按鈕,打開如圖3.6所示的“NewSpringStarterProjectDependencies”對話框,并在圖中選擇項(xiàng)目依賴,如Web。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.編寫測試代碼在應(yīng)用ch3的src/main/java目錄下,創(chuàng)建包c(diǎn)om.ch.ch3.test,并在該包中創(chuàng)建TestController類,代碼與3.2.3節(jié)相同,不再贅述?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.應(yīng)用程序的App類在應(yīng)用ch3的com.ch.ch3包中,自動生成了應(yīng)用程序的App類Ch3Application。Ch3Application的代碼略。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

5.運(yùn)行main方法啟動SpringBoot應(yīng)用《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

6.測試SpringBoot應(yīng)用啟動SpringBoot應(yīng)用后,可以通過http://localhost:8080/hello測試應(yīng)用?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

本章小結(jié)本章首先簡單介紹了SpringBoot應(yīng)運(yùn)而生的緣由,然后演示了如何使用IDEA快速構(gòu)建SpringBoot應(yīng)用。IDEA在業(yè)界被公認(rèn)為較好的Java開發(fā)工具,本書后續(xù)章節(jié)都采用IDEA編寫示例代碼。開發(fā)者使用何種集成開發(fā)工具(IDE)構(gòu)建SpringBoot應(yīng)用,可根據(jù)實(shí)際工程需要選擇合適的IDE?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

學(xué)習(xí)資源推薦第4章SpringBoot核心學(xué)習(xí)目的與要求本章將詳細(xì)介紹SpringBoot的核心注解、基本配置、自動配置原理以及條件注解。通過本章的學(xué)習(xí),掌握SpringBoot的核心注解與基本配置,理解SpringBoot的自動配置原理與條件注解。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄4.1SpringBoot的基本配置4.2讀取應(yīng)用配置4.3日志配置4.4SpringBoot的自動配置原理4.5SpringBoot的條件注解《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.1.1啟動類和核心注解@SpringBootApplicationSpringBoot應(yīng)用通常都有一個名為*Application的程序入口類,該入口類需要使用SpringBoot的核心注解@SpringBootApplication標(biāo)注為應(yīng)用的啟動類。另外,該入口類有一個標(biāo)準(zhǔn)的Java應(yīng)用程序的main方法,在main方法中通過“SpringApplication.run(*Application.class,args);”啟動SpringBoot應(yīng)用。SpringBoot的核心注解@SpringBootApplication是一個組合注解,主要組合了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.@SpringBootConfiguration注解@SpringBootConfiguration是SpringBoot應(yīng)用的配置注解,該注解也是一個組合注解,源代碼可以從spring-boot-x.y.z.jar依賴包中查看org/springframework/boot/SpringBootConfiguration.java?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.@EnableAutoConfiguration注解@EnableAutoConfiguration注解可以讓SpringBoot根據(jù)當(dāng)前應(yīng)用項(xiàng)目所依賴的JAR包自動配置項(xiàng)目的相關(guān)配置。例如,在SpringBoot項(xiàng)目的pom.xml文件中添加了spring-boot-starter-web依賴,SpringBoot項(xiàng)目會自動添加Tomcat和SpringMVC的依賴,同時對Tomcat和SpringMVC進(jìn)行自動配置?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.@ComponentScan注解該注解的功能是讓SpringBoot自動掃描@SpringBootApplication所在類的同級包以及它的子包中的配置,所以建議將@SpringBootApplication注解的入口類放置在項(xiàng)目包中(GroupId+ArtifactId組合的包名),并將用戶自定義的程序放置在項(xiàng)目包及其子包中,這樣可以保證SpringBoot自動掃描項(xiàng)目所有包中的配置?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.1.2SpringBoot的全局配置文件SpringBoot的全局配置文件(perties或application.yml)位于SpringBoot應(yīng)用的src/main/resources目錄下。1.設(shè)置端口號在SpringBoot應(yīng)用的src/main/resources目錄下找到名為perties的全局配置文件,添加如下配置內(nèi)容:server.port=8888可以將內(nèi)嵌的Tomcat的默認(rèn)端口改為8888?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.設(shè)置Web應(yīng)用的上下文路徑如果開發(fā)者想設(shè)置一個Web應(yīng)用程序的上下文路徑,可以在perties文件中配置如下內(nèi)容:server.servlet.context-path=/XXX這時應(yīng)該通過“http://localhost:8080/XXX/testStarters”訪問如下控制器類中的請求處理方法:@GetMapping("/testStarters")publicStringindex(){}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.配置文檔在SpringBoot的全局配置文件中,可以配置與修改多個參數(shù),讀者想了解參數(shù)的詳細(xì)說明和描述可以查看官方文檔說明:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.application-properties?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.1.3SpringBoot的StartersSpringBoot提供了許多簡化企業(yè)級開發(fā)的“開箱即用”的Starters。SpringBoot項(xiàng)目只要使用所需要的Starters,SpringBoot即可自動關(guān)聯(lián)項(xiàng)目開發(fā)所需要的相關(guān)依賴。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>SpringBoot將自動關(guān)聯(lián)Web開發(fā)的相關(guān)依賴,如tomcat、spring-webmvc等,進(jìn)而對Web開發(fā)的支持,并將相關(guān)技術(shù)的配置實(shí)現(xiàn)自動配置。通過訪問“https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using.build-systems.starters”官網(wǎng),可以查看SpringBoot官方提供的Starters?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄4.1SpringBoot的基本配置4.2讀取應(yīng)用配置4.3日志配置4.4SpringBoot的自動配置原理4.5SpringBoot的條件注解《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.2讀取應(yīng)用配置SpringBoot提供了三種方式讀取項(xiàng)目的perties配置文件的內(nèi)容。此三種方式分別為:Environment類、@Value注解以及@ConfigurationProperties注解?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.2.1EnvironmentEnvironment是一個通用的讀取應(yīng)用程序運(yùn)行時的環(huán)境變量的類,可以通過key-value方式讀取perties、命令行輸入?yún)?shù)、系統(tǒng)屬性、操作系統(tǒng)環(huán)境變量等?!纠?-1】使用Environment類讀取perties配置文件的內(nèi)容?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.創(chuàng)建SpringBootWeb應(yīng)用ch4使用IDEA快速創(chuàng)建SpringBootWeb應(yīng)用ch4,同時給應(yīng)用ch4添加如圖4.2所示的依賴。在4.2.3節(jié)使用@ConfigurationProperties注解進(jìn)行讀取配置時,需要SpringConfigurationProcessor依賴。需要注意的是,使用Lombok時需要事先給IDEA安裝Lombok插件?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.添加配置文件內(nèi)容在應(yīng)用ch4的src/main/resources目錄下,找到全局配置文件perties,并添加如下內(nèi)容:test.msg=readconfig《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.創(chuàng)建控制器類EnvReaderConfigController@RestControllerpublicclassEnvReaderConfigController{ @Autowired

privateEnvironmentenv; @GetMapping("/testEnv") publicStringtestEnv(){

return"方法一:"+env.getProperty("test.msg"); //test.msg為配置文件perties中的key }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

啟動與測試應(yīng)用4.啟動SpringBoot應(yīng)用運(yùn)行Ch4Application類的main方法,啟動SpringBoot應(yīng)用。5.測試應(yīng)用啟動SpringBoot應(yīng)用后,默認(rèn)訪問地址為:http://localhost:8080/,將項(xiàng)目路徑直接設(shè)為根路徑,這是SpringBoot的默認(rèn)設(shè)置。因此,我們可以通過http://localhost:8080/testEnv測試應(yīng)用(testEnv與控制器類ReaderConfigController中的@GetMapping("/testEnv")對應(yīng))《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.2.2@Value使用@Value注解讀取配置文件內(nèi)容示例代碼如下:@Value("${test.msg}")//test.msg為配置文件perties中的keyprivateStringmsg;//通過@Value注解將配置文件中key對應(yīng)的value賦值給變量msg【例4-2】使用@Value注解讀取配置文件內(nèi)容。@RestControllerpublicclassValueReaderConfigController{

@Value("${test.msg}")privateStringmsg; @GetMapping("/testValue") publicStringtestValue(){

return"方法二:"+msg; }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.2.3@ConfigurationProperties使用@ConfigurationProperties首先建立配置文件與對象的映射關(guān)系,然后在控制器方法中使用@Autowired注解將對象注入?!纠?-3】使用@ConfigurationProperties讀取配置文件內(nèi)容?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.添加配置文件內(nèi)容#nestSimplepropertiesobj.sname=chenhengobj.sage=88#Listpropertiesobj.hobby[0]=runningobj.hobby[1]=basketball#MapPropertiesobj.city.cid=dlame=dalian《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.建立配置文件與對象的映射關(guān)系@Component//使用Component注解,聲明一個組件,被控制器依賴注入@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+"]";}}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.創(chuàng)建控制器類ConfigurationPropertiesController@RestControllerpublicclassConfigurationPropertiesController{

@Autowired StudentPropertiesstudentProperties; @GetMapping("/testConfigurationProperties") publicStringtestConfigurationProperties(){ returnstudentProperties.toString(); }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.2.4@PropertySource可以使用@PropertySource注解找到項(xiàng)目的其他配置文件,然后結(jié)合4.2.1~4.2.3節(jié)中任意一種方式讀取即可。【例4-4】使用@PropertySource+@Value讀取其他配置文件內(nèi)容。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.創(chuàng)建配置文件在ch4的src/main/resources目錄下創(chuàng)建配置文件perties和perties,并在perties文件中添加如下內(nèi)容:your.msg=hello.在perties文件中添加如下內(nèi)容:my.msg=testPropertySource《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(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; }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.啟動并測試應(yīng)用《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄4.1SpringBoot的基本配置4.2讀取應(yīng)用配置4.3日志配置4.4SpringBoot的自動配置原理4.5SpringBoot的條件注解《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.3日志配置默認(rèn)情況下,SpringBoot項(xiàng)目使用LogBack實(shí)現(xiàn)日志,使用apacheCommonsLogging作為日志接口。@RestControllerpublicclassLogTestController{

privateLoglog=LogFactory.getLog(LogTestController.class); @GetMapping("/testLog") publicStringtestLog(){

("測試日志"); return"測試日志"; }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.3日志配置日志級別有ERROR、WARN、INFO、DEBUG和TRACE。SpringBoot默認(rèn)的日志級別為INFO,日志信息可以打印到控制臺。但開發(fā)者可以自己設(shè)定SpringBoot項(xiàng)目的日志輸出級別,例如在perties配置文件中加入以下配置:#設(shè)定日志的默認(rèn)級別為infologging.level.root=info#設(shè)定org包下的日志級別為warn=warn#設(shè)定com.ch.ch4包下的日志級別為debug.ch.ch4=debug《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.3日志配置SpringBoot項(xiàng)目默認(rèn)并沒有輸出日志到文件,但開發(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目錄下生成一個名為my.log的日志文件。不管日志文件位于何處,當(dāng)日志文件大小到達(dá)10MB時,將自動生成一個新日志文件。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄4.1SpringBoot的基本配置4.2讀取應(yīng)用配置4.3日志配置4.4SpringBoot的自動配置原理4.5SpringBoot的條件注解《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.4SpringBoot的自動配置原理SpringBoot使用核心注解@SpringBootApplication將一個帶有main方法的類標(biāo)注為應(yīng)用的啟動類。@SpringBootApplication注解最主要的功能之一是為SpringBoot開啟了一個@EnableAutoConfiguration注解的自動配置功能。@EnableAutoConfiguration注解主要利用了一個類名為AutoConfigurationImportSelector的選擇器向Spring容器自動配置一些組件。@EnableAutoConfiguration注解的源代碼可以從spring-boot-autoconfigure-x.y.z.jar(org.springframework.boot.autoconfigure)依賴包中查看?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.4SpringBoot的自動配置原理AutoConfigurationImportSelector(源代碼位于org.springframework.boot.autoconfigure包)類中有一個名為selectImports的方法,該方法規(guī)定了向Spring容器自動配置的組件。在方法selectImports中,調(diào)用getAutoConfigurationEntry方法獲得自動配置。在方法getAutoConfigurationEntry中,調(diào)用getCandidateConfigurations方法獲取自動配置數(shù)據(jù)。在方法getCandidateConfigurations中,調(diào)用了ImportCandidates類的靜態(tài)方法load。在方法load中,可以看到加載一個字符串常量:LOCATION,該常量的源代碼如下:privatestaticfinalStringLOCATION="META-INF/spring/%s.imports";《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.4SpringBoot的自動配置原理從上述源代碼中可以看出,最終SpringBoot是通過加載所有META-INF/spring/XXX.imports配置文件進(jìn)行自動配置的。所以,@SpringBootApplication注解通過使用@EnableAutoConfiguration注解自動配置的原理是:從classpath中搜索所有META-INF/spring/XXX.imports配置文件,并將其中org.springframework.boot.autoconfigure對應(yīng)的配置項(xiàng)通過Java反射機(jī)制進(jìn)行實(shí)例化,然后匯總并加載到Spring的IoC容器。在SpringBoot項(xiàng)目的MavenDependencies的spring-boot-autoconfigure-x.y.z.jar目錄下,可以找到META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports配置文件,該文件定義了許多自動配置?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄4.1SpringBoot的基本配置4.2讀取應(yīng)用配置4.3日志配置4.4SpringBoot的自動配置原理4.5SpringBoot的條件注解《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.5SpringBoot的條件注解打開META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports配置文件中任意一個AutoConfiguration,一般都可以找到條件注解。例如:我們打開org.springframework.boot.autoconfigure.aop.AopAutoConfiguration的源代碼,可以看到@ConditionalOnClass和@ConditionalOnProperty等條件注解。通過org.springframework.boot.autoconfigure.aop.AopAutoConfiguration的源代碼可以看出,SpringBoot的自動配置是使用Spring的@Conditional注解實(shí)現(xiàn)的?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.5.1條件注解所謂Spring的條件注解,就是應(yīng)用程序的配置類在滿足某些特定條件才會被自動啟用此配置類的配置項(xiàng)。SpringBoot的條件注解位于spring-boot-autoconfigure-x.y.z.jar的org.springframework.boot.autoconfigure.condition包下?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.5.1條件注解注解名條件實(shí)現(xiàn)類條件@ConditionalOnBeanOnBeanConditionSpring容器中存在指定的實(shí)例Bean@ConditionalOnClassOnClassCondition類加載器(類路徑)中存在對應(yīng)的類@ConditionalOnCloudPlatformOnCloudPlatformCondition是否在云平臺@ConditionalOnExpressionOnExpressionCondition判斷SpEL表達(dá)式是否成立@ConditionalOnJavaOnJavaCondition指定Java版本是否符合要求@ConditionalOnJndiOnJndiCondition在JNDI(Java命名和目錄接口)存在的條件下查找指定的位置@ConditionalOnMissingBeanOnBeanConditionSpring容器中不存在指定的實(shí)例Bean@ConditionalOnMissingClassOnClassCondition類加載器(類路徑)中不存在對應(yīng)的類@ConditionalOnNotWebApplicationOnWebApplicationCondition當(dāng)前應(yīng)用程序不是Web程序@ConditionalOnPropertyOnPropertyCondition應(yīng)用環(huán)境中屬性是否存在指定的值@ConditionalOnResourceOnResourceCondition是否存在指定的資源文件。@ConditionalOnSingleCandidateOnBeanConditionSpring容器中是否存在且只存在一個對應(yīng)的實(shí)例Bean@ConditionalOnWarDeploymentOnWarDeploymentCondition當(dāng)前應(yīng)用程序是傳統(tǒng)WAR部署@ConditionalOnWebApplicationOnWebApplicationCondition當(dāng)前應(yīng)用程序是Web程序《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.5.2自定義條件Spring的@Conditional注解根據(jù)滿足某特定條件創(chuàng)建一個特定的bean。例如,當(dāng)某jar包在類路徑下時,自動配置多個bean。這就是根據(jù)特定條件控制bean的創(chuàng)建行為,這樣我們就可以利用這個特性進(jìn)行一些自動配置。在Spring框架中,可以通過實(shí)現(xiàn)Condition接口,并重寫matches方法來構(gòu)造自定義條件?!纠?-5】如果類路徑classpath(src/main/resources)下存在文件perties,則輸出“perties文件存在?!?;否則輸出“perties文件不存在!”?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.構(gòu)造條件在SpringBoot應(yīng)用ch4的src/main/java目錄下創(chuàng)建包c(diǎn)om.ch.ch4.conditional,并在該包中分別創(chuàng)建條件實(shí)現(xiàn)類MyCondition(存在文件perties)和YourCondition(不存在文件perties)。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.創(chuàng)建不同條件下Bean的類在包c(diǎn)om.ch.ch4.conditional中,創(chuàng)建接口MessagePrint,并分別創(chuàng)建該接口的實(shí)現(xiàn)類MyMessagePrint和YourMessagePrint?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.創(chuàng)建配置類在包c(diǎn)om.ch.ch4.conditional中,創(chuàng)建配置類ConditionConfig。并在該配置類中使用@Bean和@Conditional實(shí)例化符合條件的Bean。@ConfigurationpublicclassConditionConfig{

@Bean @Conditional(MyCondition.class) publicMessagePrintmyMessage(){ returnnewMyMessagePrint(); }

@Bean @Conditional(YourCondition.class) publicMessagePrintyourMessage(){ returnnewYourMessagePrint(); }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.創(chuàng)建測試類publicclassTestMain{ privatestaticAnnotationConfigApplicationContextcontext; publicstaticvoidmain(String[]args){

context=newAnnotationConfigApplicationContext(ConditionConfig.class);

MessagePrintmp=context.getBean(MessagePrint.class); System.out.println(mp.showMessage()); }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

5.運(yùn)行《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.5.3自定義Starters【例4-6】自定義一個Starter(spring_boot_mystarters)。要求:當(dāng)類路徑中存在MyService類時,自動配置該類的bean,并可以將相應(yīng)bean的屬性在perties中配置?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

1.新建SpringBoot項(xiàng)目spring_boot_mystarters《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

2.修改pom文件修改SpringBoot項(xiàng)目spring_boot_mystarters的pom文件,增加SpringBoot自身的自動配置作為依賴。另外,使用@ConfigurationProperties注解進(jìn)行讀取配置時,需要SpringConfigurationProcessor依賴。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.創(chuàng)建屬性配置類MyProperties在項(xiàng)目spring_boot_mystarters的com.ch.spring_boot_mystarters包中,創(chuàng)建屬性配置類MyProperties。在使用spring_boot_mystarters的SpringBoot項(xiàng)目的配置文件perties中,可以使用my.msg=設(shè)置屬性;若不設(shè)置,默認(rèn)為my.msg=默認(rèn)值。@ConfigurationProperties(prefix="my")publicclassMyProperties{

privateStringmsg="默認(rèn)值"; publicStringgetMsg(){ returnmsg; } publicvoidsetMsg(Stringmsg){ this.msg=msg; }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

4.創(chuàng)建判斷依據(jù)類MyService在項(xiàng)目spring_boot_mystarters的com.ch.spring_boot_mystarters包中,創(chuàng)建判斷依據(jù)類MyService。本例自定義的Starters將根據(jù)該類的存在與否來創(chuàng)建該類的bean,該類可以是第三方類庫的類?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

5.創(chuàng)建自動配置類MyAutoConfiguration在項(xiàng)目spring_boot_mystarters的com.ch.spring_boot_mystarters包中,創(chuàng)建自動配置類MyAutoConfiguration。在該類中使用@EnableConfigurationProperties注解開啟屬性配置類MyProperties提供參數(shù);使用@ConditionalOnClass注解判斷類加載器(類路徑)中是否存在MyService類;使用@ConditionalOnMissingBean注解判斷當(dāng)容器中不存在MyService的bean時,自動配置這個bean?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

@Configuration//開啟屬性配置類MyProperties提供參數(shù)@EnableConfigurationProperties(MyProperties.class)//類加載器(類路徑)中是否存在對應(yīng)的類@ConditionalOnClass(MyService.class)//應(yīng)用環(huán)境中屬性是否存在指定的值@ConditionalOnProperty(prefix="my",value="enabled",matchIfMissing=true)publicclassMyAutoConfiguration{ @Autowired

privateMyPropertiesmyProperties; @Bean //當(dāng)容器中不存在MyService的Bean時,自動配置這個Bean

@ConditionalOnMissingBean(MyService.class) publicMyServicemyService(){ MyServicemyService=newMyService(); myService.setMsg(myProperties.getMsg()); returnmyService; }}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

6.注冊配置在項(xiàng)目spring_boot_mystarters的src/main/resources目錄下新建文件夾META-INF/spring,并在該文件夾下創(chuàng)建名為com.ch.spring_boot_mystarters.MyAutoConfiguration.imports的文件。在com.ch.spring_boot_mystarters.MyAutoConfiguration.imports文件中添加如下內(nèi)容注冊自動配置類MyAutoConfiguration:com.ch.spring_boot_mystarters.MyAutoConfiguration上述文件內(nèi)容中,若有多個自動配置類,換行即可配置另一個自動配置類?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

將spring_boot_mystarters安裝到Maven的本地庫使用IntelliJIDEA打開spring_boot_mystarters項(xiàng)目,進(jìn)一步打開右側(cè)Maven,雙擊Lifecycle中的install即可將spring_boot_mystarters安裝到Maven的本地庫。成功將spring_boot_mystarters安裝到Maven的本地庫后,在項(xiàng)目spring_boot_mystarters的target目錄下可看到spring_boot_mystarters-0.0.1-SNAPSHOT.jar文件生成?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

使用spring_boot_mystarters-0.0.1-SNAPSHOT.jar【例4-7】我們在該例中創(chuàng)建SpringBoot的Web應(yīng)用ch4_1,并在ch4_1中使用spring_boot_mystarters作為項(xiàng)目依賴。1.創(chuàng)建pringBoot的Web應(yīng)用ch4_1使用IntelliJIDEA快速創(chuàng)建SpringBoot的Web應(yīng)用ch4_1。2.添加spring_boot_mystarters的依賴在Web應(yīng)用ch4_1的pom.xml文件中添加spring_boot_mystarters的依賴,代碼如下:<dependency>

<groupId>com.ch</groupId>

<artifactId>spring_boot_mystarters</artifactId>

<version>0.0.1-SNAPSHOT</version></dependency>《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

3.修改程序入口類Ch41Application,測試spring_boot_mystarters@RestController//掃描com.ch.spring_boot_mystarters包@SpringBootApplication(scanBasePackages={"com.ch.spring_boot_mystarters"})publicclassCh41Application{@AutowiredprivateMyServicemyService;publicstaticvoidmain(String[]args){SpringApplication.run(Ch41Application.class,args);}@GetMapping("/testStarters")publicStringindex(){returnmyService.sayMsg();}}《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

運(yùn)行Ch41Application應(yīng)用程序這時,我們在Web應(yīng)用ch4_1的perties文件中配置msg的內(nèi)容:my.msg=starterpom《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

查看自動配置報(bào)告另外,我們可以在Web應(yīng)用ch4_1的perties文件中配置debug屬性(debug=true),查看自動配置報(bào)告?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

本章小結(jié)本章重點(diǎn)講解了SpringBoot的基本配置、讀取應(yīng)用配置、日志配置、自動配置原理以及條件注解。通過本章的學(xué)習(xí),讀者應(yīng)掌握SpringBoot的核心注解@SpringBootApplication的基本用法,理解SpringBoot的自動配置原理,了解SpringBoot的條件注解。重要的是,開發(fā)者可以利用SpringBoot的自動配置與條件注解貢獻(xiàn)自己的Starters?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

學(xué)習(xí)資源推薦第5章SpringBoot的Web開發(fā)學(xué)習(xí)目的與要求本章首先介紹SpringBoot的Web開發(fā)支持,然后介紹Thymeleaf視圖模板引擎技術(shù),最后介紹SpringBoot的Web開發(fā)技術(shù)(JSON數(shù)據(jù)交互、文件上傳與下載、異常統(tǒng)一處理以及對JSP的支持)。通過本章的學(xué)習(xí),掌握SpringBoot的Web開發(fā)技術(shù)?!禨pringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄5.1SpringBoot的Web開發(fā)支持5.2Thymeleaf模板引擎5.3SpringBoot處理JSON數(shù)據(jù)5.4SpringBoot文件上傳與下載5.5SpringBoot的異常統(tǒng)一處理5.6SpringBoot對JSP的支持《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

5.1SpringBoot的Web開發(fā)支持<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>SpringBoot將自動關(guān)聯(lián)Web開發(fā)的相關(guān)依賴,如tomcat、spring-webmvc等,進(jìn)而對Web開發(fā)的支持,并將相關(guān)技術(shù)的配置實(shí)現(xiàn)自動配置。《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

目錄5.1SpringBoot的Web開發(fā)支持5.2Thymeleaf模板引擎5.3SpringBoot處理JSON數(shù)據(jù)5.4SpringBoot文件上傳與下載5.5SpringBoot的異常統(tǒng)一處理5.6SpringBoot對JSP的支持《SpringBoot從入門到實(shí)戰(zhàn)(第2版·微課視頻版)》陳恒

主編,清華大學(xué)出版社,2024

5.2Thymeleaf模板引擎在SpringBoot的Web應(yīng)用中,建議開發(fā)者使用HTML完成動態(tài)頁面。SpringBoot提供了許多模板引擎,主要包括FreeMarker、Groovy、Thymeleaf、Velocity和Mustache。因?yàn)門hymeleaf提供了完美的SpringMVC支持,所以在SpringBoot的Web應(yīng)用中推薦使用Thymeleaf作為模板引擎。Thymeleaf是一個Java類庫,是一個xml/xhtml/html5的模板引擎,能夠處理HTML、XML、JavaScript以及CSS,可以作為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論