《Java輕量級框架技術(shù)與應用》 課件全套 王永強 項目1-7 Spring入門 -Spring Boot安全機制_第1頁
《Java輕量級框架技術(shù)與應用》 課件全套 王永強 項目1-7 Spring入門 -Spring Boot安全機制_第2頁
《Java輕量級框架技術(shù)與應用》 課件全套 王永強 項目1-7 Spring入門 -Spring Boot安全機制_第3頁
《Java輕量級框架技術(shù)與應用》 課件全套 王永強 項目1-7 Spring入門 -Spring Boot安全機制_第4頁
《Java輕量級框架技術(shù)與應用》 課件全套 王永強 項目1-7 Spring入門 -Spring Boot安全機制_第5頁
已閱讀5頁,還剩181頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目一初識Spring認識Spring目錄Content1Spring依賴注入2需求的不斷變化項目導言零面臨新的挑戰(zhàn)最主流開發(fā)框架Spring入門學習目標零知識目標了解Spring的優(yōu)點;熟悉Spring的下載安裝與結(jié)構(gòu)目錄;熟悉Spring的控制反轉(zhuǎn)與bean的注入方式;了解Spring中AOP的概念;熟悉Spring中AOP的使用方法。能力目標具備Spring相關(guān)依賴的下載的能力;具備創(chuàng)建Spring項目的能力;具備使用Spring中bean注入方式的能力;具備使用Spring進行面向切面編程的能力;具備基于XML配置方式的能力。素質(zhì)目標具備精益求精、堅持不懈的精神;具有獨立解決問題的能力;具備靈活的思維和處理分析問題的能力;具有責任心。任務1:認識Spring壹Spring概述任務技能Spring是開源應用程序框架。Spring的依賴注入容器、AOP實現(xiàn)和對持久化層的支持。來解決企業(yè)應用程序開發(fā)復雜性。Spring加載方式Spring的依賴管理,使用Maven或者Gradle等構(gòu)建工具來管理依賴關(guān)系。管理Spring的依賴關(guān)系使用定位并下載大量的jar包來使用Spring。對于基本的依賴注入那只需要一個必須的外部依賴--日志任務1-1:Spring概述壹1什么是SpringSpring是一款流行的開源應用程序框架,可以幫助開發(fā)者構(gòu)建高效的企業(yè)級應用程序。Spring框架的核心是IoC(inversionofcontrol)和AOP(aspect-orientedprogramming)容器,IOC-控制反轉(zhuǎn)避免對象之間的耦合避免應用程序依賴于容器的功能AOP-面向切片編程它們可以幫助開發(fā)者實現(xiàn)松散耦合和面向切面的編程,從而使得應用程序更加易于測試和維護。Spring是一個全面的解決方案。但它堅持一個原則:不重新造輪子。任務1-1:Spring概述壹2Spring模塊下圖描述了SpringFramework包含的內(nèi)容。組成Spring框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。任務1-1:Spring概述壹3Spring的優(yōu)點提供了一個一致的編程模型。旨在促進代碼重用。旨在促進面向?qū)ο蟮脑O計。致力于推動好的編程習慣,如用接口編程。Spring改進了從Java代碼中提取配置值到XML或者屬性文件中的方法。32145任務1-1:Spring概述壹在項目中引入Spring可以帶來的好處如下所示:降低組件之間的耦合度,實現(xiàn)軟件各層之間的解耦??梢允褂萌萜魈峁┑谋姸喾眨纾菏聞展芾矸铡⑾⒎盏鹊?。當使用容器管理事務時,開發(fā)人員就不再需要手工控制事務。也不需處理復雜的事務傳播。容器提供單例模式支持,開發(fā)人員不再需要自己編寫實現(xiàn)代碼。容器提供了AOP技術(shù),利用它很容易實現(xiàn)如權(quán)限攔截、運行期監(jiān)控等功能。容器提供的眾多輔助類,使用這些類能夠加快應用的開發(fā),如:JdbcTemplate、HibernateTemplate。Spring對于主流的應用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,這樣更便于應用的開發(fā)。321456任務1-2:Spring加載方式壹Spring的依賴管理,可以幫助我們更好地管理應用程序中的依賴關(guān)系。

在Spring中,可以使用Maven或者Gradle等構(gòu)建工具來管理依賴關(guān)系。如果使用Spring,需要獲得Spring的jar包,其中要包括需要使用的Spring的模塊。在社區(qū)下載點/downloads/community。Maven的中央庫,也是Maven默認檢索的資源庫企業(yè)級資源庫(EnterpriseBundleRepository,EBR),同時也提供了和Spring整合的所有類庫。在AmazonS3為開發(fā)和里程碑版本發(fā)布(最終發(fā)布的版本這里也會有)而設置的公共Maven資源庫。任務1-3:管理Spring的依賴關(guān)系壹對于基本的依賴注入那只需要一個必須的外部依賴,就是日志。如果使用的是Maven,可以在pom.xml文件中添加以下內(nèi)容來管理Spring的依賴關(guān)系,代碼如下所示。<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.10</version></dependency></dependencies>如果您使用的是Gradle,可以在build.gradle文件中添加以下內(nèi)容來管理Spring的依賴關(guān)系:dependencies{implementation'org.springframework:spring-context:5.3.10'}任務2:Spring依賴注入貳Spring控制反轉(zhuǎn)任務技能Spring是一個開源的控制反轉(zhuǎn)(InversionofControl,IoC)和面向切面(AOP)的容器框架。它的主要目的是簡化企業(yè)開發(fā)。bean注入方式依賴注入的作用就是在使用Spring框架創(chuàng)建對象時,動態(tài)的將其所依賴的對象注入到Bean組件中,bean作用域Bean的作用域定義了Bean在我們使用它的上下文中的生命周期和可見性。任務2-1:Spring控制反轉(zhuǎn)貳

Spring是一個開源的控制反轉(zhuǎn)(InversionofControl,IoC)和面向切面(AOP)的容器框架。它的主要目的是簡化企業(yè)開發(fā)。0102IOC01控制反轉(zhuǎn)模式(也稱作依賴性介入)表示不創(chuàng)建對象,但是描述創(chuàng)建它們的方式。IOC容器02Spring的一個核心特性是IOC。,它的基本思想是將對象的創(chuàng)建、管理和依賴關(guān)系的處理從業(yè)務邏輯中分離出來,交由IOC容器來完成。任務2-2:bean注入方式貳

依賴注入(DependencyInject,縮寫DI)就是由IoC容器在運行期間動態(tài)地將某種依賴資源注入對象之中。在Spring中,依賴注入的作用就是在使用Spring框架創(chuàng)建對象時,動態(tài)的將其所依賴的對象注入到Bean組件中。有三種主要的Bean注入方式:0102構(gòu)造函數(shù)注入Setter方法注入字段注入任務2-2:bean注入方式貳

通過構(gòu)造函數(shù)注入,需要在Bean定義時指定Bean所需的依賴關(guān)系。SpringIOC容器會在創(chuàng)建Bean時自動調(diào)用對應的構(gòu)造函數(shù),并將所需的依賴關(guān)系作為參數(shù)傳遞進去。示例代碼如下:0102publicclassExampleBean{privatefinalDependencydependency;publicExampleBean(Dependencydependency){this.dependency=dependency;}}<beanid="exampleBean"class="com.example.ExampleBean"><constructor-argref="dependency"/></bean>1構(gòu)造函數(shù)注入任務2-2:bean注入方式貳

通過Setter方法注入,需要在Bean定義中指定Bean所需的依賴關(guān)系,并且為Bean定義對應的Setter方法。SpringIOC容器會在創(chuàng)建Bean后,自動調(diào)用Bean的Setter方法,并將所需的依賴關(guān)系作為方法參數(shù)傳遞進去。示例代碼如下:0102publicclassExampleBean{privateDependencydependency;publicvoidsetDependency(Dependencydependency){this.dependency=dependency;}}<beanid="exampleBean"class="com.example.ExampleBean"><propertyname="dependency"ref="dependency"/></bean>2Setter方法注入任務2-2:bean注入方式貳

通過字段注入,需要在Bean定義中指定Bean所需的依賴關(guān)系,并將依賴關(guān)系標記為@Autowired或@Resource等注解。SpringIOC容器會自動掃描Bean中所有需要注入的字段,并將所需的依賴關(guān)系自動注入進去。示例代碼如下:publicclassExampleBean{@AutowiredprivateDependencydependency;}<beanid="exampleBean"class="com.example.ExampleBean"></bean>3字段注入任務2-3:bean作用域貳bean作用域概述Bean的作用域定義了Bean在我們使用它的上下文中的生命周期和可見性。Spring框架的最新版本定義了6種作用域:singleton、prototype、request、session、application和websocket。其中,后四種作用域僅在Web感知應用程序中可用?。任務2-3:bean作用域貳Singleton作用域和Prototype作用域是Spring框架中兩種常用的Bean作用域。Singleton作用域

每次通過getBean()方法獲取該實例時,都返回同一個實例。適用于那些需要在整個應用程序中共享的對象,例如數(shù)據(jù)庫連接池、線程池等??赡艽嬖诰€程安全的問題,需要注意并發(fā)訪問的情況。Prototype作用域

每次通過getBean()方法獲取該實例時,都返回一個新的實例。適用于那些需要在每次請求時都重新初始化的對象,例如請求參數(shù)封裝類、臨時計算結(jié)果等。每次獲取實例時都會創(chuàng)建新的對象,不會存在線程安全的問題。任務2-3:bean作用域貳【示例】演示Singleton作用域和Prototype作用域首先,創(chuàng)建一個名為SingletonBean的類,使用@Component注解將其標記為一個組件,并將作用域設置為Singleton。@Component@Scope("singleton")publicclassSingletonBean{privateintcount=0;publicvoidincrement(){count++;}publicvoidshowMessage(){System.out.println("SingletonBean:Count="+count);}}任務2-3:bean作用域貳然后,創(chuàng)建一個名為PrototypeBean的類,使用@Component注解將其標記為一個組件,并將作用域設置為Prototype。@Component@Scope("prototype")publicclassPrototypeBean{privateintcount=0;publicvoidincrement(){count++;}publicvoidshowMessage(){System.out.println("PrototypeBean:Count="+count);}}任務2-3:bean作用域貳接下來,創(chuàng)建一個名為Main的類,使用@Autowired注解將SingletonBean和PrototypeBean注入進來,并進行測試。@ComponentpublicclassMain{@AutowiredprivateSingletonBeansingletonBean;@AutowiredprivatePrototypeBeanprototypeBean;publicvoidrun(){//SingletonBeansingletonBean.increment();singletonBean.showMessage();

//PrototypeBeanprototypeBean.increment();prototypeBean.showMessage();

//PrototypeBeanprototypeBean.increment();prototypeBean.showMessage();//SingletonBeansingletonBean.increment();singletonBean.showMessage();}}任務2-3:bean作用域貳最后,在應用程序的入口處,創(chuàng)建一個ApplicationContext對象,并使用getBean()方法獲取Main實例,然后調(diào)用run()方法。publicclassApplication{publicstaticvoidmain(String[]args){ApplicationContextcontext=newAnnotationConfigApplicationContext(AppConfig.class);Mainmain=context.getBean(Main.class);main.run();}}

任務2-3:bean作用域貳運行應用程序,輸出結(jié)果如圖可以看到,SingletonBean是一個單例,每次調(diào)用increment()方法后,count的值會被保留下來。而PrototypeBean是一個原型,每次調(diào)用increment()方法后,count的值會被重新初始化。任務3:Spring中的AOP叁AOP簡介任務技能AOP模塊提供了一個符合AOP聯(lián)盟標準的面向切面編程的實現(xiàn)。AOP中的概念AOP中涉及很多術(shù)語,如切面、連接點、切入點、通知、目標對象、織入、引入等使用Spring進行面向切面編程要進行AOP編程,首先我們要在Spring的配置文件中引入aop命名空間。任務3-1:AOP簡介叁為什么需要AOP?人腦的“內(nèi)存”也是有限的,如果把所有相關(guān)聯(lián)的事情像煮臘八粥一樣一股腦放在一塊兒,別說找出解決方案了,不會被逼瘋的就是高人!通過依賴注入,在編寫程序的時候,我們不用關(guān)心依賴的組件是怎么實現(xiàn)的了。任務3-1:AOP簡介叁先來看下面的程序代碼:publicvoiddoSomeBusiness(longlParam,StringsParam){ //記錄日志 ("調(diào)用doSomeBusiness方法,參數(shù)是:"+lParam); //參數(shù)合法性驗證 if(lParam<=0){ thrownewIllegalArgumentException("xx應該大于0"); } if(sParam==null||sParam.trim().equals("")){ thrownewIllegalArgumentException("xx不能為空"); } //異常處理 try{ //真正的業(yè)務邏輯代碼在這里... //事務控制 mit(); }catch(Exceptione){ //... tx.rollback(); }}1任務3-1:AOP簡介叁如果需要修改系統(tǒng)日志的格式,或者安全驗證的策略,為了保證系統(tǒng)可用,就要在每個業(yè)務方法里都反反復復地編寫這些代碼嗎?考慮復雜的業(yè)務已經(jīng)讓人頭大了,再處理這些方方面面的事情,寫出來的代碼既難讀,質(zhì)量又沒保障。我們怎樣才能專心在真正的業(yè)務邏輯上呢?這正是AOP要解決的問題!2什么是AOPAOP是Aspect-OrientedProgrmming的簡稱,意思是面向方面編程。在業(yè)務系統(tǒng)中,總有一些散落、滲透到系統(tǒng)各處而且不得不處理的事情,比如安全驗證。需要在頁面上判斷用戶是否登錄、當前登錄用戶是否有權(quán)限訪問該頁面,在Action代碼里還要限制用戶是否通過直接在URL輸入路徑中繞過了頁面的權(quán)限控制代碼,甚至在業(yè)務層代碼里,還要限制不同用戶訪問的不同數(shù)據(jù)。任務3-1:AOP簡介叁與此類似,日志、事務、安全驗證等這些通用的、散布在系統(tǒng)各處的需要,以及在實現(xiàn)業(yè)務系統(tǒng)時關(guān)注的事情就稱為“方面”,也稱為“關(guān)注點”,如圖所示。如果能把這些“方面”集中處理,那樣既能減少“方面”代碼里的錯誤,又能保證我們在編寫業(yè)務邏輯代碼時專心做事,“方面”處理策略發(fā)生改變時還能統(tǒng)一做出修改,這就是AOP要做的事情。從系統(tǒng)中分離出方面,然后集中實現(xiàn)。從而可以獨立編寫業(yè)務邏輯代碼和方面代碼,在系統(tǒng)運行的時候,再將方面代碼“織入”到系統(tǒng)中。任務3-1:AOP簡介叁3如何使用AOP切點是程序執(zhí)行過程中的一個特定點,例如方法調(diào)用、異常處理或變量賦值等。在AOP中,切點用于確定何時應用橫切關(guān)注點。定義切點橫切關(guān)注點是一組操作,它們可以應用于切點定義的方法、類或其他程序元素。橫切關(guān)注點通常包括日志記錄、安全性檢查、性能測量等。定義橫切關(guān)注點通知是在代理對象上定義的一組橫切關(guān)注點的邏輯實現(xiàn)。通知可以是一個方法調(diào)用,也可以是一個切面。應用通知代理對象是應用程序的一部分,它代表了被橫切關(guān)注點影響的程序元素。在AOP中,代理對象通常是通過使用JDK動態(tài)代理或CGLIB生成的。配置代理對象任務3-1:AOP簡介叁使用SpringAOP來記錄日志示例代碼如下所示。//定義切點@Pointcut("execution(*com.example.service.*.*(..))")publicvoidserviceMethod(){}//定義橫切關(guān)注點@Before("serviceMethod()")publicvoidlogRequest(){//記錄請求信息}//在Spring配置文件中啟用AOP<aop:aspectj-autoproxy/>//在需要進行日志記錄的服務方法中調(diào)用logRequest()方法即可publicvoiddoSomething(){//...logRequest();}任務3-2:AOP中的概念叁對AOP的常用術(shù)語Aspect(切面)切面指橫切性關(guān)注點的抽象JoinPoint(連接點)指那些被攔截到的點Pointcut(切入點)是指我們要對哪些連接點進行攔截的定義Advice(通知)指攔截到連接點之后所要做的事情Target(目標對象)代理的目標對象Weave(織入)將切面應用到目標對象的過程Introduction(引入)可為目標對象添加一些屬性和方法任務3-3:使用Spring進行面向切面編程叁要進行AOP編程,首先我們要在Spring的配置文件中引入aop命名空間,示例配置文件代碼如下所示:<beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/aop/schema/aop/spring-aop.xsd"><!--其他bean定義--><aop:aspectj-autoproxy/></beans>任務3-3:使用Spring進行面向切面編程叁Spring提供了兩種切面聲明方式,注解式和XML式。1.基于XML配置方式聲明切面元素描述<aop:config>SpringAOP配置的根元素<aop:aspect>配置切面<aop:advisor>配置通知器<aop:pointcut>配置切點<aop:before>配置前置通知,在目標方法執(zhí)行前實施增強,可以應用于權(quán)限管理等功能<aop:after>配置后置通知,在目標方法執(zhí)行后實施增強,可以應用于關(guān)閉流、上傳文件、刪除臨時文件等功能<aop:around>配置環(huán)繞方式,在目標方法執(zhí)行前后實施增強,可以應用于日志、事務管理等功能<aop:after-returning>配置返回通知,在目標方法成功執(zhí)行之后調(diào)用通知<aop:after-throwing>配置異常通知,在方法拋出異常后實施增強,可以應用于處理異常記錄日志等功能任務3-3:使用Spring進行面向切面編程叁2.基于注解方式聲明切面注解式聲明方式是通過在切面類上添加@Aspect注解來聲明切面。在Spring配置文件中添加如示例代碼所示代碼的配置:@AspectpublicclassLogAspect{@Before("execution(*com.example.service.*.*(..))")publicvoidlogBefore(JoinPointjoinPoint){//...}}與您共同成長項目二

SpringMVC開發(fā)基礎(chǔ)初識SpringMVC目錄Content1SpringMVC進階2攔截器的使用3文件上傳和下載4項目導言零MVC(ModelViewController)是一種軟件架構(gòu)思想模型Model視圖View控制器Controller學習目標零知識目標了解SpringMVC的概念熟悉SpringMVC的特點掌握SpringMVC框架核心組件的使用方式掌握SpringMVC的常用注解熟悉@Controller與@RequestMapping注解的使用方式了解SpringMVC攔截器的感念掌握SpringMVC攔截器的定義與配置方式熟悉文件的上傳和下載方法能力目標具備使用SpringMVC接受并相應瀏覽器發(fā)起的請求的能力具備使用攔截器高效編輯代碼的能力具備獨立使用SpringMVC實現(xiàn)文件上傳下載的能力具備SpringMVC規(guī)范注釋編寫的能力素質(zhì)目標具備精益求精、堅持不懈的精神;具有獨立解決問題的能力;具備靈活的思維和處理分析問題的能力;具有責任心。任務1:初識SpringMVC壹Springmvc概述任務技能SpringMVC是Spring框架中的一個Web框架,是目前最好的實現(xiàn)MVC設計模式的框架。SpringMVC實現(xiàn)了Web層的開發(fā)規(guī)范,其底層依賴于一系列的功能組件,配合完成整個功能。SpringMVC框架的核心組件SpringMVC實現(xiàn)了Web層的開發(fā)規(guī)范,其底層依賴于一系列的功能組件,配合完成整個功能。任務1-1:Springmvc概述壹1SpringMVC概念在JavaEE開發(fā)中,系統(tǒng)經(jīng)典的三層架構(gòu)包括表現(xiàn)層、業(yè)務層和持久層。表現(xiàn)層(Web層)持久層(Dao層)業(yè)務層(Service層)任務1-1:Springmvc概述壹2SpringMVC特點SpringMVC框架與Spring框架其他組件模塊的無縫集成。SpringMVC框架提供強大而直接的配置方式使用SpringMVC框架能簡單的進行Web層的單元測試,提高開發(fā)效率使用SpringMVC框架便于與其他視圖技術(shù)集成SpringMVC框架提供了非常靈活的數(shù)據(jù)驗證、格式化和數(shù)據(jù)綁定機制SpringMVC框架還提供一套強大的JSP標簽庫來簡化JSP開發(fā)支持靈活的本地化、主題等解析SpringMVC框架提供了統(tǒng)一異常處理機制,使得異常處理更加簡單任務1-2:SpringMVC框架的核心組件壹SpringMVC實現(xiàn)了Web層的開發(fā)規(guī)范,其底層依賴于一系列的功能組件,配合完成整個功能。其流程如圖任務2:SpringMVC進階貳Springmvc常用注解任務技能Spring2.5引入注解式處理器支持,通過@Controller和@RequestMapping注解定義我們的處理器類。任務2-1:Springmvc常用注解貳Spring2.5引入注解式處理器支持,通過@Controller和@RequestMapping注解定義我們的處理器類。并且提供了一組強大的注解:@Controller:用于標識是處理器類;@RequestMapping:用于從客戶端到控制器的地址映射;@RequestParam:用于客戶端參數(shù)注入到控制器的數(shù)據(jù)綁定;之后的Spring版本每次升級,都會提供更多的注解幫助程序開發(fā)者進行快速開發(fā),提高開發(fā)效率。任務2-1:Springmvc常用注解貳1@Controller注解@Controller注解是Spring框架中用來標識控制器類的注解。它的作用是將一個普通的Java類轉(zhuǎn)換為SpringMVC中的控制器,使得該類可以響應HTTP請求并返回相應的視圖模型。importorg.springframework.stereotype.Controller;...@Controller //標注@Controller注解publicclassFirstController{...}任務2-1:Springmvc常用注解貳2@RequestMapping@RequestMapping注解用于建立請求URL和Handler(處理器)之間的映射關(guān)系,該注解可以標注在方法上和類上。(1)標注在方法上@RequestMapping注解是SpringMVC中用于映射HTTP請求的注解,它可以用于控制器類的方法上,用來指定請求的URL路徑和請求方法。@ControllerpublicclassMyController{

@RequestMapping(path="/")publicStringhome(Modelmodel){model.addAttribute("message","Hello,World!");return"home";}}任務2-1:Springmvc常用注解貳2@RequestMapping(2)標注在類上當@RequestMapping注解標注在類上時,@RequestMapping的value屬性值相當于本處理器類的命名空間,即訪問該處理器類下的任意處理器都需要帶上這個命名空間。@ControllerpublicclassMyController{

@RequestMapping(value="/hello",method=RequestMethod.GET)publicStringhello(Modelmodel){model.addAttribute("message","Hello,World!");return"hello";}

}任務2-1:Springmvc常用注解貳@RequestMapping注解的屬性@RequestMapping注解是SpringMVC中用于映射HTTP請求的注解,它可以用于控制器類或處理器類上,用來指定請求的URL路徑和請求方法。屬性名類型描述nameString可選屬性,用于為映射地址指定別名。valueString[]可選屬性,也是默認屬性,用于指定請求的URL。methodRequestMethod[]可選屬性,用于指定該方法可以處理哪種類型的請求方式??梢允荊ET、POST、PUT、DELETE等。默認值是GET。paramsString[]可選屬性,用于指定客戶端請求中參數(shù)的值,必須包含哪些參數(shù)的值,才可以通過其標注的方法處理。headersString[]可選屬性,用于指定客戶端請求中,必須包含哪些header的值,才可以通過其標注的方法處理。consumesString[]可選屬性,用于指定處理請求的提交內(nèi)容類型(Content-type)??梢允荍SON、XML等。默認值是所有類型的都支持。producesString[]可選屬性,用于指定返回的內(nèi)容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回??梢允荍SON、XML等。默認值是所有類型的都支持。任務2-1:Springmvc常用注解貳3@RequestParam@RequestParam是SpringMVC中用于將HTTP請求參數(shù)綁定到控制器方法參數(shù)上的注解。它可以用于控制器類的方法參數(shù)上,用來指定請求的參數(shù)名稱和類型。@RequestParam注解有以下幾個屬性:value:name屬性的別名,這里指參數(shù)的名稱,即入?yún)⒌恼埱髤?shù)名稱,required:表示該參數(shù)是否是必需的。defaultValue:指定了參數(shù)的默認值。如果請求中缺少該參數(shù),則會使用默認值。type:指定了參數(shù)的類型。publicStringtest(@RequestParam(value="username",required=false)Stringusername)任務3:攔截器的使用叁攔截器概述任務技能在應用程序中對請求和響應進行處理的組件,它可以在指定的方法調(diào)用前或者調(diào)用后,執(zhí)行預先設定的代碼。攔截器定義方式在SpringMVC中定義一個攔截器非常簡單,常用的攔截器定義方式有兩種。攔截器的配置自定義攔截器之后,需要在SpringMVC的配置文件中配置攔截器,攔截器需要在前端控制器中進行配置才能生效:任務3-1:攔截器概述叁SpringMVC的處理器攔截器是一種在應用程序中對請求和響應進行處理的組件,它可以在指定的方法調(diào)用前或者調(diào)用后,執(zhí)行預先設定的代碼。常見的應用場景包括:安全認證日志記錄通用行為性能監(jiān)控緩存對請求進行身份驗證和授權(quán),以確保只有經(jīng)過認證的用戶才能訪問受保護的資源。記錄請求和響應的詳細信息,以便進行故障排除和性能優(yōu)化。監(jiān)測請求的響應時間、吞吐量等指標,提供有關(guān)應用程序性能的詳細信息。對請求進行緩存,以減少對后端服務器的負載。讀取cookie得到用戶信息并將用戶對象放入請求,方便后續(xù)流程使用任務3-2:攔截器定義方式叁常用的攔截器定義方式有以下兩種。第一種方式是通過實現(xiàn)HandlerInterceptor接口定義攔截器。第二種方式是通過繼承HandlerInterceptor接口的實現(xiàn)類HandlerInterceptorAdapter,定義攔截器。實現(xiàn)HandlerInterceptor接口定義攔截器是最常用的方式之一。HandlerInterceptor接口定義了三個方法:preHandle():在Controller方法執(zhí)行之前被調(diào)用,可以對請求進行預處理,postHandle():在Controller方法執(zhí)行之后被調(diào)用,可以對響應進行后處理,afterCompletion():在Controller方法執(zhí)行完成后被調(diào)用,可以進行資源清理等工作。任務3-2:攔截器定義方式叁示例代碼如下所示publicclassFirstInterceptorimplementsHandlerInterceptor{

@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{//在請求處理之前進行攔截returntrue;}@OverridepublicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsException{//在請求處理之后進行攔截}@OverridepublicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex)throwsException{//在請求處理完成之后進行攔截}}任務3-3:攔截器的配置叁自定義攔截器之后,需要在SpringMVC的配置文件中配置攔截器,攔截器需要在前端控制器中進行配置才能生效:<mvc:interceptors/>標簽用于配置一組攔截器,<mvc:interceptors/>標簽內(nèi)部可以使用多個<mvc:interceptor/>或直接使用<bean/>標簽分別配置每個攔截器的信息。配置攔截器示例代碼如下所示。<!--配置攔截器--><mvc:interceptors><!--直接配置在mvc:interceptors內(nèi)部的攔截器對所有請求有效--><beanclass="erceptor.FirstInterceptor"></bean> <mvc:interceptor> <!--配置攔截器生效的路徑--> <mvc:mappingpath="/**"/> <!--配置攔截器不生效的路徑,在生效路徑范圍內(nèi),消除不生效的路徑--> <mvc:exclude-mappingpath="/login"/> <!--攔截器的位置--> <beanclass="erceptor.SecondInterceptor"></bean></mvc:interceptor></mvc:interceptors>任務4:文件上傳和下載肆文件上傳任務技能大多數(shù)文件上傳都是通過表單形式提交給后臺服務器。文件下載文件下載就是將文件服務器中的文件傳輸?shù)降奖緳C上。任務4-1:文件上傳肆大多數(shù)文件上傳都是通過表單形式提交給后臺服務器,因此,要實現(xiàn)文件上傳功能,就需要提供一個文件上傳的表單,并且該表單必須滿足以下3個條件。分別是表單的方法設為post,enctype屬性設置為multipart/form-data和提供<inputtype="file"name="filename"/>的文件上傳輸入框。示例代碼如下所示。<formaction="uploadUrl"method="post"enctype="multipart/form-data"><inputtype="file"name="filename"/><inputtype="submit"value="文件上傳"multiple="multiple"/></form>任務4-1:文件上傳肆SpringMVC為文件上傳提供了直接的支持,這種支持是通過MultipartResolver(多部件解析器)對象實現(xiàn)的。MultipartResolver是一個接口,可以使用MultipartResolver的實現(xiàn)類CommonsMultipartResolver來完成文件上傳工作。第一步:在配置文件中定義MultipartResolver接口的Bean,具體配置方式如下。<beanid="multipartResolver"class="mons.CommonsMultipartResolver"/><!--設置請求編碼格式,必須與JSP中的pageEncoding屬性一致,默認為ISO-8859-1--><propertyname="defaultEncoding"value="UTF-8"/><!--設置允許上傳文件的最大值為2M,單位為字節(jié)--><propertyname="maxUploadSize"value="2097152"/></bean>任務4-1:文件上傳肆第二步:添加commons-fileload依賴。CommonsMultipartResolver并未自主實現(xiàn)文件上傳下載對應的功能,而是在內(nèi)部調(diào)用了ApacheCommonsfileload的組件,所以使用SpirngMVC的文件上傳功能,需要在項目中導入ApacheCommonsfileload組件的依賴,即commons-fileload依賴和commons-io依賴。由于commons-fileload依賴會自動依賴commons-io,所以可以只在項目的pom.xml文件中引入如下依賴。<dependency> <groupId>commons-fileload</groupId> <artifactId>commons-fileload</artifactId> <version>1.4</version></dependency>任務4-1:文件上傳肆第三步:當完成文件上傳表單和文件上傳解析器的配置后,就可以在Controller中編寫上傳文件的方法,如下所示:@ControllerpublicclassfileloadController{@RequestMapping("/fileload")publicStringfileload(MultipartFilefile){if(!file.isEmpty()){//保存上傳的文件,filepath為保存的目標目錄 file.transferTo(newFile(filePath))return"uploadSuccess";}return"uploadFailure";}}任務4-2:文件下載肆文件下載就是將文件服務器中的文件傳輸?shù)降奖緳C上。進行文件下載時,為了不以客戶端默認的方式處理返回的文件,可以在服務器端對所下載的文件進行相關(guān)的配置。要使用ResponseEntity對象進行文件下載,需要將文件資源對象包裝在Resource對象中,然后將其返回給客戶端。以下是一個示例代碼:@GetMapping("/download")publicResponseEntity<Resource>downloadFile()throwsIOException{Filefile=newFile("/path/to/file");if(!file.exists()){thrownewFileNotFoundException();}HttpHeadersheaders=newHttpHeaders();headers.add(HttpHeaders.CONTENT_DISPOSITION,"attachment;filename=myfile.txt");headers.add(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_OCTET_STREAM_VALUE);Resourceresource=newFileSystemResource(file);returnResponseEntity.ok().headers(headers).contentLength(resource.contentLength()).contentType(resource.contentType()).body(resource);}與您共同成長項目三

SpringBoot開發(fā)入門認識SpringBoot目錄Content1SpringBoot程序探究2項目導言零學習目標零知識目標了解SpringBoot的特點;熟悉SpringBoot的開發(fā)環(huán)境配置;了解SpringBoot工程目錄結(jié)構(gòu);掌握SpringBoot的自動配置方法;熟悉SpringBoot的執(zhí)行流程;了解SpringBoot的Starter的概念與使用;掌握SpringBoot的項目熱部署方法。能力目標具備獨立搭建SpringBoot開發(fā)環(huán)境的能力具備為SpringBoot項目添加熱部署與單元測試的能力。技能目標具備精益求精、堅持不懈的精神;具有獨立解決問題的能力;具備靈活的思維和處理分析問題的能力;具有責任心。任務1:SpringBoot壹SpringBoot簡介任務技能SpringBoot的核心設計思想是“約定優(yōu)于配置”。SpringBoot特點相比較傳統(tǒng)的Spring框架,SpringBoot優(yōu)點更明顯。開發(fā)環(huán)境準備在開發(fā)入門程序之前,有必要對項日運行所需環(huán)境進行介紹,并提前準備完成。任務1-1:SpringBoot簡介壹Spring框架是一個全面的企業(yè)級應用程序開發(fā)框架,它提供了許多模塊和組件,包括依賴注入(DI)、面向切面編程(AOP)、數(shù)據(jù)訪問、Web開發(fā)、安全等。Spring框架的目標是簡化企業(yè)級應用程序的開發(fā),提高開發(fā)效率和可維護性。SpringBoot是Spring框架的一種快速應用程序開發(fā)框架,它通過提供自動配置和快速啟動功能,簡化了Spring應用程序的開發(fā)過程。SpringBoot的目標是使開發(fā)者能夠更快地構(gòu)建獨立的、生產(chǎn)級別的Spring應用程序。任務1-2:SpringBoot特點壹13572468面向生產(chǎn)自動配置易于測試獨立運行約定優(yōu)于配置強大的生態(tài)系統(tǒng)微服務支持快速啟動任務1-3:開發(fā)環(huán)境準備壹為了方便入門程序的編寫,在開發(fā)入門程序之前,有必要對項日運行所需環(huán)境進行介紹,并提前準備完成。JDK環(huán)境根據(jù)SpringBoot官方文檔說明,SpringBoot2.1.3版本要求JDK本必須是JDK1.8以上,1項目構(gòu)建工具SpringBoot2.1.3版本官方文檔聲明支持的第三方項目構(gòu)建工具包括Maven(3.3+)和Gradle(4.4+)2開發(fā)工具其中IntelliJIDEA是近幾年比較流行的,且業(yè)界評價最高的一款Java開發(fā)工具3任務2:SpringBoot程序探究貳工程目錄結(jié)構(gòu)任務技能springboot的目錄結(jié)構(gòu)SpringBoot自動配置使得開發(fā)人員可以更加方便地構(gòu)建應用程序,而不需要手動配置各種組件。SpringBoot執(zhí)行流程SpringBoot常用類與接口和執(zhí)行流程SpringBoot的starter將所需的依賴全部以一致的方式進行注入并進行統(tǒng)一管理。SpringBoot項目熱部署自動重新加載應用程序的配置文件和代碼,而無需手動重啟應用程序。任務2-1:工程目錄結(jié)構(gòu)貳新建好的任務1中springboot的目錄結(jié)構(gòu)如圖。0102任務2-2:SpringBoot自動配置貳SpringBoot的自動配置是其一個非常重要的功能,它使得開發(fā)人員可以更加方便地構(gòu)建應用程序,而不需要手動配置各種組件。SpringBoot應用的啟動入口是@SpringBootApplication注解標注類中的main()方法,@SpringBootApplication能夠掃措Spring組件并自動配置SpringBoot,自動配置示例代碼如下所示。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters={@Filter(type=FilterType.CUSTOM,classes=TypeExcludeFilter.class), @Filter(type=FilterType.CUSTOM,classes=AutoConfigurationExcludeFilter.class)})public@interfaceSpringBootApplication{...}任務2-2:SpringBoot自動配置貳1.注解SpringBoot支持多種注解,通過使用這些注解,開發(fā)人員可以告訴SpringBoot應該如何自動配置應用程序的各種組件。(1)@Configuration(2)@EnableAutoConfiguration(3)@ComponentScan(4)@SpringBootApplication2.類路徑掃描SpringBoot會根據(jù)應用程序的類路徑來掃描應用程序中的組件和配置信息。具體來說,它會掃描以下幾個目錄:classpath下的jar包和目錄:perties或application.yml文件所在的目錄:系統(tǒng)環(huán)境變量指定的目錄:在掃描過程中,SpringBoot會根據(jù)注解和配置文件來進行自動配置。任務2-3:SpringBoot執(zhí)行流程貳1.SpringBoot常用類與接口(1)SpringApplicationRunListener(是SpringBoot應用程序的執(zhí)行流程中不同執(zhí)行時間點事件通知的監(jiān)聽器)(2)ApplicationContextlnitializer(接口是Spring框架中用來初始化應用程序上下文的回調(diào)接口)(3)ApplicationRunner和CommandLineRunner(在項目開發(fā)過程中可以在容器啟動時執(zhí)行一些程序處理)任務2-3:SpringBoot執(zhí)行流程貳2.執(zhí)行流程每個SpringBoot應用程序都有一個主程序啟動類其中的main方法即啟動人口,main方法通過調(diào)用SpringApplication.run方法執(zhí)行整個SpringBoot應用程序。任務2-3:SpringBoot執(zhí)行流程貳具體步驟如下所示:①創(chuàng)建SpringApplication實例,調(diào)用run方法,同時將啟動入口類作為參數(shù)傳遞進去;②通過SpringFactoriesLoader加載META-INF/spring.factories文件,獲取并創(chuàng)建SpringApplicationRunListener對象;③然后由SpringApplicationRunListener來發(fā)出starting消息;④創(chuàng)建參數(shù),并配置當前SpringBoot應用需要使用的Environment實例。⑤完成之后,依然由SpringApplicationRunListener來發(fā)出environmentPrepared消息;⑥創(chuàng)建Spring的應用上下文實例:ApplicationContext,初始化該實例并設置應用環(huán)境配置實例:Environment,同時加載相關(guān)的配置項;⑦由SpringApplicationRunListener發(fā)出contextPrepared消息,告知SpringBoot應用當前使用的ApplicationContext已準備完畢;⑧將各種Bean組件裝載入Spring的IO容器/應用上下文:⑨重新刷新RefreshSpring的應用上下文實例:ApplicationContext,完成IOC容器可用的最后一步;⑩由SpringApplicationRunListener發(fā)出started消息,完成最終的程序的啟動;?由SpringApplicationRunListener發(fā)出running消息,告知程序已成功運行起來了。任務2-4:SpringBoot的starter貳在任何一個項目中,依賴管理都是至關(guān)重要的一部分。開發(fā)人員在使用時只需在pom文件中進行依賴注入即可,以達到快速搭建項目的目的。1.Starter概述Starter可以將需要的功能整合起來,像是一個可拔插式的插件,方便使用。任務2-4:SpringBoot的starter貳比較常用的starter見表名稱作用spring-boot-starter核心starter,包括自動化配置支持,日志以及YAMLspring-boot-starter-aopSpringAOP和AspectJ相關(guān)的切面編程starterspring-boot-starter-data-jpa使用HibernateSpringDataJPA的starterspring-boot-starter-jdbc使用HikariCP連接池JDBC的starterspring-boot-starter-security使用SpringSecurity的starterspring-boot-starter-testSpringBoot測試相關(guān)的starterspring-boot-starter-web構(gòu)建restful、springMVC的web應用程序的starterspring-boot-starter-data-redis支持redis緩存。任務2-4:SpringBoot的starter貳基本上不同的Starter都會使用到兩個內(nèi)容:AutoConfiguration和ConfigurationProperties。我們使用ConfigurationProperties來保存我們的配置,并且這些配置都可以有一個默認值,在沒有主動覆寫原始配置的情況下,默認值就會生效。除此之外,Starter的ConfigurationProperties還使得所有的配置屬性被聚集到一個文件中,這樣我們就告別了Spring項目中XML地獄。任務2-5:SpringBoot項目熱部署貳SpringBoot項目熱部署是指在應用程序運行過程中,可以自動重新加載應用程序的配置文件和代碼,而無需手動重啟應用程序。這對于開發(fā)人員來說非常方便,可以大大提高開發(fā)效率。SpringBoot支持熱部署的主要原因是它使用了SpringFramework的動態(tài)模塊系統(tǒng),該系統(tǒng)允許應用程序在運行時動態(tài)加載和管理模塊。除了使用spring-boot-devtools依賴之外,還可以使用其他一些工具來實現(xiàn)熱部署。例如,可以使用Gradle的restart插件來重新運行應用程序,或者使用IntelliJIDEA的BuildAutomatically功能來自動重新編譯和運行應用程序。任務2-5:SpringBoot項目熱部署貳SpringBootDevTools是SpringBoot提供的一個開發(fā)工具,它可以自動重啟應用程序來實現(xiàn)熱部署。其原理如下所示。如果開發(fā)的是大型項目,重啟項目會非常耗時,所以使用熱部署減少重啟時間能顯著提高開發(fā)效率。啟動應用程序時,SpringBootDevTools會創(chuàng)建一個嵌入式的Tomcat服務器,并將其配置為支持自動重啟。當應用程序需要重新加載配置文件或類文件時,SpringBootDevTools會將這些文件打包成一個可執(zhí)行的jar包,并將其放置在target/classes目錄下。SpringBootDevTools會在應用程序關(guān)閉時自動檢測到需要重新加載的文件,并將其重新打包成可執(zhí)行的jar包。在重新啟動應用程序時,SpringBootDevTools會使用新的jar包替換舊的jar包,從而實現(xiàn)熱部署。如果應用程序在重新加載過程中發(fā)生了異常,SpringBootDevTools會捕獲異常并記錄日志,以便開發(fā)人員進行排查。與您共同成長項目四

SpringBoot原理解讀與配置只會信息管理系統(tǒng)的基礎(chǔ)配置目錄Content1智慧信息管理系統(tǒng)的自定義配置2項目導言零支持兩種格式的全局配置文件,屬性文件格式和YAML格式學習目標零知識目標了解SpringBoot的默認配置文件的內(nèi)容;熟悉注入配置文件屬性值的方法;了解自定義配置文件的方法;掌握@ImportResource注解的使用方法;熟悉多環(huán)境配置的方法;熟悉@Profile注解的使用方法。能力目標具備獨立為SpringBoot的各種環(huán)境配置文件的能力;具備為系統(tǒng)自定義配置文件的能力。素質(zhì)目標具備精益求精、堅持不懈的精神;具有獨立解決問題的能力;具備靈活的思維和處理分析問題的能力;具有責任心。任務1:只會信息管理系統(tǒng)的基礎(chǔ)配置壹模塊化管理任務技能在SpringBoot中,可以使用模塊化管理來組織和管理項目的各個模塊。默認配置文件對于SpringBoot項目都需要全局配置文件,目的是用來修改SpringBoot自動配置的默認值。注入配置文件屬性值SpringBoot提供了許多配置,其默認提供的配置,會自動掃描并讀取到屬性值。任務1-1:模塊化管理壹1模塊化管理概述模塊化管理可以幫助我們更好地分離和組織項目的功能,并提高代碼的可維護性和可擴展性。下面是一些常用的模塊化管理方法:01020304Gradle多項目構(gòu)建Maven多模塊項目SpringBootStarter模塊化開發(fā)任務1-1:模塊化管理壹2模塊化管理項目步驟在進行模塊化管理項目中有兩種方式,一種是創(chuàng)建一個父項目,在項目里面添加子模塊,在IDEA軟件中具體步驟如下:第一步:先創(chuàng)建一個springboot項目,參照項目三中的創(chuàng)建方式。第二步:創(chuàng)建完項目之后,選擇項目,右鍵在彈出的選項中選擇“New”→“Module”。效果如圖。任務1-1:模塊化管理壹第三步:在彈出的“NewModule”中,填寫相關(guān)信息,創(chuàng)建springboot模塊。效果如圖。任務1-1:模塊化管理壹第四步:點擊“Next”后,在彈出的對話框中選擇SpringBoot的版本,和添加SpringWeb依賴,效果如圖。任務1-1:模塊化管理壹第五步:創(chuàng)建成功后,效果如圖4-4所示,此時創(chuàng)建的模塊在chapter040101中。任務1-2:默認配置文件壹對于SpringBoot項目都需要全局配置文件,目的是用來修改SpringBoot自動配置的默認值。一般使用Properties文件或YAML文件作為全局的配置文件。1perties(1)SpringBoot框架自動添加perties文件的目的之一是為了實現(xiàn)自動配置機制。自動配置機制會根據(jù)應用所引入的starter包來自動觸發(fā)實現(xiàn)對應功能的bean對象的創(chuàng)建。(2)perties文件除了可以放在resources目錄下之外,還可以放在其他幾個位置,并且存在一個加載優(yōu)先級的關(guān)系,即不同位置都存在一個perties文件,則以優(yōu)先級高的位置的perties文件的內(nèi)容為準。任務1-2:默認配置文件壹2application.yaml(1)YAMLYAML是一種人類可讀的以數(shù)據(jù)為中心數(shù)據(jù)序列化語言,文件格式是SpringBoot支持的一種JSON超集文件格式。它的語法比較簡潔直觀,特點是使用空格來表達層次結(jié)構(gòu),其最大優(yōu)勢在于數(shù)據(jù)結(jié)構(gòu)方面的表達,所以YAML更多應用于編寫配置文件,其文件一般以.yml或yaml為后綴。YAML支持的數(shù)據(jù)結(jié)構(gòu)有對象(通過鍵值對表示)、數(shù)組和純量(單個的不可再分的值)。在配置YAML文件時,默認放在resources中,除此之外,還可以放在classpath根路徑下,當前工程路徑下、classpath根路徑下的config目錄下和當前工程路徑下的config目錄下,效果如圖。任務1-3:注入配置文件屬性值壹SpringBoot提供了許多配置,其默認提供的配置,會自動掃描并讀取到屬性值。但通常情況我們需要在配置文件中自己定義的值,并將值應用到程序中。1@Value注入屬性@Value注解時Spring框架提供的,用來讀取配置文件中的屬性值并逐個注入Bean對象的屬性中,基于@Value注解來將perties或application.yml文件的某個鍵值對屬性賦值到Java類的某個屬性中,其中該屬性對應的鍵需要放在“${一級屬性名.二級屬性名...}”的花括號里面。支持使用SpEL(SpringExpressionLanguage)表達式進行類型轉(zhuǎn)換和驗證;支持使用默認值和自定義格式化器等。任務1-3:注入配置文件屬性值壹2@Autowired注入屬性@Autowired是Spring框架中的注解,用于自動裝配Bean對象。通過@Autowired注解,我們可以將一個Bean對象自動注入到另一個Bean對象中,而不需要手動創(chuàng)建和設置依賴對象。具體使用方式如下:(1)字段注入:@AutowiredprivateSomeServicesomeService;(2)構(gòu)造方法注入:privateSomeServicesomeService;@AutowiredpublicSomeController(SomeServicesomeService){this.someService=someService;}(3)方法注入:privateSomeServicesomeService;@AutowiredpublicvoidsetSomeService(SomeServicesomeService){this.someService=someService;}任務1-3:注入配置文件屬性值壹3@ConfigurationProperties注入屬性@ConfigurationProperties注解是SpringBoot提供的一種用于將配置文件中的屬性值注入到Java類中的方法。它可以自動將配置文件中的屬性值映射到Java類的字段上,并提供了一些方便的特性,例如:支持嵌套屬性和數(shù)組類型的屬性;支持類型轉(zhuǎn)換和驗證;支持默認值和自定義格式化器等。任務1-3:注入配置文件屬性值壹4@ConfigurationProperties和@Value注解區(qū)別01底層框架02功能03松散語法04SpEL05JSR303數(shù)據(jù)校驗06Settrt方法07復雜類型封裝任務2:智慧信息管理系統(tǒng)的自定義配置貳自定義配置文件任務技能定一個或多個屬性源,這些屬性源可以是Java中的類路徑、文件系統(tǒng)路徑或其他資源位置。@ImportResource注解對于傳統(tǒng)的XML配置文件,在SpringBoot項目中同樣可以使用@ImportResource注解進行手動加載。多環(huán)境配置概述多環(huán)境配置是指在同一個應用程序中,根據(jù)不同的運行環(huán)境(如開發(fā)環(huán)境(dev)、測試環(huán)境(test)、生產(chǎn)環(huán)境(prod等)來加載不同的配置文件或設置不同的參數(shù)。任務2-1:自定義配置文件貳定一個或多個屬性源,這些屬性源可以是Java中的類路徑、文件系統(tǒng)路徑或其他資源位置。當應用程序啟動時,SpringBoot會自動加載這些屬性源,并將其中的屬性值注入到應用程序中。默認情況下,@PropertySource注解只支持讀取properties格式的配置文件,不支持讀取yml格式的配置文件。但是,可以通過添加spring-boot-configuration-processor依賴來解決這個問題。這個依賴包含了一個名為spring-boot-configuration-processor的BeanPostProcessor,它可以將yml格式的配置文件轉(zhuǎn)換為properties格式的配置文件,從而使得@PropertySource注解可以讀取yml格式的配置文件。任務2-2:@ImportResource注解貳對于傳統(tǒng)的XML配置文件,在SpringBoot項目中同樣可以使用@ImportResource注解進行手動加載。@ImportResource注解通常放置在啟動類上,在注解中編寫locations=“classpath:...”來標記XML文件的路徑和名稱。任務2-3:多環(huán)境配置概述貳多環(huán)境配置是指在同一個應用程序中,根據(jù)不同的運行環(huán)境(如開發(fā)環(huán)境(dev)、測試環(huán)境(test)、生產(chǎn)環(huán)境(prod等)來加載不同的配置文件或設置不同的參數(shù)。在實際開發(fā)中,我們通常需要根據(jù)不同的環(huán)境來調(diào)整應用程序的行為和性能。為了實現(xiàn)多環(huán)境配置,我們可以使用以下幾種方法:使用環(huán)境變量使用不同的參數(shù)使用不同的配置文件無論使用哪種方法,都需要注意以下幾點:確保不同環(huán)境下的配置文件或參數(shù)不會相互干擾或沖突。在修改配置文件或參數(shù)時,需要進行充分的測試和驗證,以確保應用程序的行為和性能符合預期。在發(fā)布應用程序時,需要將所有相關(guān)的配置文件和參數(shù)打包在一起,并提供給用戶進行安裝和配置。任務2-3:多環(huán)境配置概述貳第一步:定義多環(huán)境配置文件配置文件名需滿足application-{profile}.properties(.yaml/.yml)的格式appli

溫馨提示

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

評論

0/150

提交評論