欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

詳細(xì)SpringBoot教程之Web開(kāi)發(fā)(一) - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >

詳細(xì)SpringBoot教程之Web開(kāi)發(fā)(一)

發(fā)表時(shí)間:2020-2-24

發(fā)布人:葵宇科技

瀏覽次數(shù):56

寫(xiě)在前面

鑒于有人留言說(shuō)想要學(xué)習(xí)SpringBoot相關(guān)的知識(shí),我這里打算寫(xiě)一個(gè)SpringBoot系列的相關(guān)博文,目標(biāo)呢是想讓看了這一系列博文的同學(xué)呢,能夠?qū)pringBoot略窺門(mén)徑,這一系列的博文初步都定下來(lái)包括SpringBoot介紹、入門(mén)、配置、日志相關(guān)、web開(kāi)發(fā)、數(shù)據(jù)訪問(wèn)、結(jié)合docker、緩存、消息隊(duì)列、檢索、任務(wù)安全、分布式等等一系列的博文,工作量很大,是個(gè)漫長(zhǎng)的過(guò)程,每一步我都盡量詳細(xì),配上截圖說(shuō)明,也希望對(duì)看的同學(xué)真的有用。
單純就是想分享技術(shù)博文,還想說(shuō)一句就是,如果覺(jué)得有用,請(qǐng)點(diǎn)個(gè)關(guān)注、給個(gè)贊吧,也算對(duì)我來(lái)說(shuō)是個(gè)寬慰,畢竟也得掉不少頭發(fā),嘿嘿嘿

系列文章傳送條

詳細(xì)SpringBoot教程之入門(mén)(一)
詳細(xì)SpringBoot教程之入門(mén)(二)
詳細(xì)SpringBoot教程之配置文件(一)
詳細(xì)SpringBoot教程之配置文件(二)
詳細(xì)SpringBoot教程之日志框架
詳細(xì)SpringBoot教程之Web開(kāi)發(fā)(一)
詳細(xì)SpringBoot教程之Web開(kāi)發(fā)(二)
詳細(xì)SpringBoot教程之Web開(kāi)發(fā)(三)
詳細(xì)SpringBoot教程之?dāng)?shù)據(jù)訪問(wèn)
詳細(xì)SpringBoot教程之啟動(dòng)配置原理
詳細(xì)SpringBoot教程之緩存開(kāi)發(fā)

開(kāi)發(fā)前準(zhǔn)備

我們接下來(lái)準(zhǔn)備使用SpringBoot開(kāi)發(fā)一個(gè)restful的應(yīng)用,首先我們通過(guò)Idea創(chuàng)建向?qū)臀覀儎?chuàng)建SpringBoot應(yīng)用,勾選我們需要的模塊,這里我們還是只勾選一個(gè)web場(chǎng)景,后面需要啥再添加。
在這里插入圖片描述

前面說(shuō)過(guò),我們創(chuàng)建的項(xiàng)目中,SpringBoot將會(huì)幫我們自動(dòng)配置好web開(kāi)發(fā)場(chǎng)景中需要的相關(guān)配置,只需要在配置文件中指定少量配置就可以運(yùn)行起來(lái)了,我們只需要注意在業(yè)務(wù)代碼中就可以了。

當(dāng)然,我們?nèi)绻胍闱宄硞€(gè)場(chǎng)景中,SpringBoot幫我們配置了什么依賴(lài),這個(gè)時(shí)候就需要我們了解相關(guān)的自動(dòng)配置原理了,前面的博文有相關(guān)的講解,我這里就不深入講解了。

SpringBoot對(duì)靜態(tài)資源的映射配置規(guī)則

創(chuàng)建好了項(xiàng)目之后,我們先來(lái)講解一下SpringBoot對(duì)于靜態(tài)資源的相關(guān)配置規(guī)則,因?yàn)槲覀儸F(xiàn)在暫時(shí)來(lái)開(kāi)發(fā)一個(gè)前后端沒(méi)有分離的很徹底的應(yīng)用(如果前后端分離的很徹底,我們只用SpringBoot來(lái)做后端接口),所以必須要知道怎么使用SpringBoot的靜態(tài)資源。

使用webjars

首先SpringBoot的有個(gè)叫webjars的東西,所有通過(guò)pom.xml引入的靜態(tài)資源,都在/webjars/**下(這個(gè)在靜態(tài)資源的自動(dòng)配置類(lèi)中可以找到),也就是說(shuō)SpringBoot會(huì)自動(dòng)去classpath:/META-INF/resources/webjars/找資源,webjars以jar包的方式引入靜態(tài)資源(也就是說(shuō),我們都可以通過(guò)http://localhost:8080/webjars/xx訪問(wèn)對(duì)應(yīng)的靜態(tài)資源)

怎么通過(guò)pom.xml引入靜態(tài)資源呢?我們可以去webjars的資源庫(kù)中找,需要什么靜態(tài)資源的jar基本都可以在這里找到(指的是框架依賴(lài)),里面長(zhǎng)這樣子。
在這里插入圖片描述各種靜態(tài)資源jar都可以通過(guò)pom.xml依賴(lài)的方式引入 ,我們引入JQuery看看,引入的JQuery的依賴(lài)包下邊,可以看到webjars內(nèi)容長(zhǎng)這樣
在這里插入圖片描述
現(xiàn)在我們引入了jQuery的靜態(tài)資源,我們啟動(dòng)項(xiàng)目,來(lái)試一下能不能通過(guò)對(duì)應(yīng)的路徑訪問(wèn),我這里使用的路徑是http://localhost:8080/webjars/jquery/3.4.1/jquery.js
在這里插入圖片描述
所以發(fā)現(xiàn)了沒(méi)有,我通過(guò)SpringBoot來(lái)開(kāi)發(fā)相關(guān)的靜態(tài)資源,非常方便,我們只要引入對(duì)應(yīng)的webjars就可以了,SpringBoot不需要我們進(jìn)行過(guò)多的配置,有自己默認(rèn)配置的規(guī)則。

使用resources

當(dāng)然如果我們想要用自己的靜態(tài)資源,不想使用webjars的東西,怎么做呢?這個(gè)時(shí)候就需要另外一個(gè)映射規(guī)則就是/**(也就是說(shuō),我們通過(guò)http://localhost:8080/xxx.js訪問(wèn)靜態(tài)資源,如果我們沒(méi)有配置相關(guān),就會(huì)默認(rèn)去下面這幾個(gè)文件夾中找)用來(lái)配置映射,即可訪問(wèn)當(dāng)前項(xiàng)目下的任何資源

  • classpath:/META-INF/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/
    即通過(guò)“/**”訪問(wèn)的靜態(tài)資源,SpringBoot會(huì)去上面這幾個(gè)找資源,這些也就是SpringBoot默認(rèn)的靜態(tài)資源文件夾
    在這里插入圖片描述
    這里我們可以隨便將jquery.js放置在三個(gè)文件夾中的一個(gè),然后通過(guò)http://localhost:8080/jquery.js可以訪問(wèn)到。
    在這里插入圖片描述
    在這里插入圖片描述

配置歡迎頁(yè)映射

靜態(tài)資源文件夾下的所有index.html頁(yè)面,會(huì)被/映射;
也就是說(shuō)我們直接訪問(wèn)http://localhost:8080/就直接訪問(wèn)靜態(tài)資源文件夾中的index.html,相當(dāng)于我們以前SpringMVC下面的index.jsp,比如我們現(xiàn)在隨機(jī)選public的靜態(tài)資源文件夾下創(chuàng)建index.html
在這里插入圖片描述
同樣的所有的
/favicon.ico默認(rèn)都是在靜態(tài)資源下找,當(dāng)然,如果我們不想要使用SpringBoot默認(rèn)的靜態(tài)資源文件夾,我們還可以定義靜態(tài)資源的映射,如下
在這里插入圖片描述
要注意了,如果自己定義了靜態(tài)資源映射之后,默認(rèn)的文件夾就都不生效了,相當(dāng)于原來(lái)的那些訪問(wèn)方式都不生效了。

模板引擎

JSP、Velocity、Freemarker、Thymeleaf等等,模板引擎的本質(zhì)思想是一樣的,只是語(yǔ)法不大一致而已。比如說(shuō)以freemarker為例,如下圖。
在這里插入圖片描述
SpringBoot推薦的Thymeleaf,不用JSP,因?yàn)門(mén)hymeleaf語(yǔ)法更加簡(jiǎn)單,功能更加強(qiáng)大,如何導(dǎo)入呢,其實(shí)對(duì)于SpringBoot不就是一個(gè)引入依賴(lài)的事情嘛,很簡(jiǎn)單,依賴(lài)包如下

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

這里引入的是SpringBoot默認(rèn)的Thymeleaf依賴(lài)版本,如果我們要切換版本怎么切換,如下,加上對(duì)應(yīng)版本號(hào)就可以了

<properties>
<thymeleaf.version></thymeleaf.version>
<thymeleaf-layout-dialect.version></thymeleaf-layout-dialect.version>
</properties>

使用Thymeleaf

在使用Thymeleaf語(yǔ)法之前,我們先來(lái)實(shí)驗(yàn)一下,我們只要把HTML頁(yè)面放在templates目錄下就可以了,Thymeleaf就會(huì)自動(dòng)渲染
在這里插入圖片描述
在這里插入圖片描述

正式使用

我們先編寫(xiě)一個(gè)控制器,用來(lái)跳轉(zhuǎn)渲染,控制器中,加入我們待會(huì)兒要在HTML通過(guò)Thymeleaf獲取的一個(gè)變量值,如下
在這里插入圖片描述
在HTML編寫(xiě)代碼之前,現(xiàn)在HTML的頭標(biāo)簽中導(dǎo)入thymeleaf的名稱(chēng)空間,這樣我們?cè)谑褂肨hymeleaf語(yǔ)法的時(shí)候,Idea就會(huì)提示相關(guān)代碼。
在這里插入圖片描述
編寫(xiě)好之后啟動(dòng)項(xiàng)目,我們通過(guò)訪問(wèn)http://localhost:8080/success來(lái)訪問(wèn)success.html頁(yè)面,訪問(wèn)之后結(jié)果如下
在這里插入圖片描述

SpringBoot自動(dòng)配置MVC

SpringBoot集成了SpringMVC,所以里面自然自動(dòng)配置了SpringMVC運(yùn)行的相關(guān)基本依賴(lài),那么SpringBoot引入了SpringMVC那些依賴(lài)呢?這里我大致進(jìn)行一下介紹。Spring Boot為Spring MVC提供了自動(dòng)配置,可與大多數(shù)應(yīng)用程序完美配合。其中自動(dòng)配置在Spring的默認(rèn)值之上添加了以下功能:

  • 包含ContentNegotiatingViewResolver和BeanNameViewResolver
  • 支持服務(wù)靜態(tài)資源,包括對(duì)WebJars的支持
  • 自動(dòng)注冊(cè)Converter,GenericConverter和Formatter的beans。
  • 支持HttpMessageConverters。
  • 自動(dòng)注冊(cè)MessageCodesResolver
  • 靜態(tài)index.html支持
  • 定制Favicon支持
  • 自動(dòng)使用ConfigurableWebBindingInitializerbean

如果要保留這些Spring Boot MVC定制并進(jìn)行更多的MVC定制(攔截器,格式化程序,視圖控制器和其他功能),則可以添加自己@Configuration的type類(lèi),WebMvcConfigurer但不添加 @EnableWebMvc(因?yàn)?#64;EnableWebMvc會(huì)關(guān)閉Spring Boot MVC的默認(rèn)配置,而轉(zhuǎn)向需要讀取我們自己添加的配置,稍后會(huì)講)。

如果你想提供的定制情況RequestMappingHandlerMapping,RequestMappingHandlerAdapter或者ExceptionHandlerExceptionResolver,仍然保持彈簧引導(dǎo)MVC自定義,你可以聲明類(lèi)型的beans WebMvcRegistrations,并用它來(lái)提供這些組件的定制實(shí)例。

如果你想對(duì)Spring MVC中的完全控制,你可以添加自己的@Configuration注解為@EnableWebMvc,或者添加自己的@Configuration-annotated DelegatingWebMvcConfiguration中的Javadoc中所述@EnableWebMvc。

后面我們會(huì)討論怎么對(duì)SpringMVC進(jìn)行完全控制。

拓展SpringMVC

看到如下配置是不是很熟悉,我們以前在SpringMVC中是這樣編寫(xiě)視圖控制器和攔截器的,那么我們?cè)趺丛赟pringBoot中使用呢?
在這里插入圖片描述
在前面見(jiàn)過(guò),為了方便編寫(xiě)項(xiàng)目的統(tǒng)一配置,和前面見(jiàn)過(guò)配置的的地方一樣,我們統(tǒng)一把項(xiàng)目的配置放在config包中管理,然后我們?cè)赾onfig包下創(chuàng)建一個(gè)MyMvcConfig的類(lèi),實(shí)現(xiàn)WebMvcConfigurer接口,就可以對(duì)SpringBoot中關(guān)于SpringMVC相關(guān)配置進(jìn)行擴(kuò)展了。

WebMvcConfigurer可以用來(lái)擴(kuò)展SpringMVC的功能,需要什么在里面實(shí)現(xiàn)什么方法就可以了,比如我們擴(kuò)展一下視圖轉(zhuǎn)換器,如下
在這里插入圖片描述
這樣實(shí)現(xiàn)了既保留了使用原有的配置,又能使用我們自己的方式擴(kuò)展配置

@EnableWebMvc

上面我們可以自己編寫(xiě)類(lèi)擴(kuò)展SpringMVC的相關(guān)配置,如果我們?cè)僭谂渲妙?lèi)上加上@EnableWebMvc注解,是啥意思呢,也就是說(shuō)我們將全面接管SpringMVC在SpringBoot中的配置,在SpringBoot中有關(guān)SpringMVC所有的默認(rèn)配置都會(huì)失效,需要我們自行配置,比如上面我們默認(rèn)webjars進(jìn)行訪問(wèn)靜態(tài)資源等等,都會(huì)失效
在這里插入圖片描述
也就是說(shuō)原本我們不使用@EnableWebMvc,SpringBoot會(huì)自動(dòng)配置SpringMVC的默認(rèn)依賴(lài),如果我們使用@EnableWebMvc,則@EnableWebMvc就會(huì)將WebMVCConfigurationSupport組件導(dǎo)入進(jìn)來(lái),而導(dǎo)入的WebMVCConfigurationSupport組件里面只有SpringMVC一些最基本的功能。

如何修改SpringBoot的默認(rèn)配置

SpringBoot在自動(dòng)配置很多組件的時(shí)候,先看容器中有沒(méi)有哦用戶自己配置的(@Bean、@Component)如果有就用用戶配置的,如果沒(méi)有就自動(dòng)配置,如果有些組件可以有多個(gè)(如ViewResolver)將用戶配置和自己默認(rèn)的組合起來(lái)

在SpringBoot中會(huì)有非常多的xxxConfigurer幫助我們進(jìn)行SpringMVC的拓展配置。

寫(xiě)一篇

這篇博文我們?cè)谶M(jìn)行正式開(kāi)發(fā)前的一些準(zhǔn)備,下一篇我們來(lái)引入靜態(tài)資源文件編寫(xiě)相關(guān)代碼。

相關(guān)案例查看更多