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

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

159-8711-8523

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

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

詳細SpringBoot教程之Web開發(fā)(一)

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

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

瀏覽次數(shù):56

寫在前面

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

系列文章傳送條

詳細SpringBoot教程之入門(一)
詳細SpringBoot教程之入門(二)
詳細SpringBoot教程之配置文件(一)
詳細SpringBoot教程之配置文件(二)
詳細SpringBoot教程之日志框架
詳細SpringBoot教程之Web開發(fā)(一)
詳細SpringBoot教程之Web開發(fā)(二)
詳細SpringBoot教程之Web開發(fā)(三)
詳細SpringBoot教程之數(shù)據(jù)訪問
詳細SpringBoot教程之啟動配置原理
詳細SpringBoot教程之緩存開發(fā)

開發(fā)前準備

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

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

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

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

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

使用webjars

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

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

使用resources

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

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

配置歡迎頁映射

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

模板引擎

JSP、Velocity、Freemarker、Thymeleaf等等,模板引擎的本質(zhì)思想是一樣的,只是語法不大一致而已。比如說以freemarker為例,如下圖。
在這里插入圖片描述
SpringBoot推薦的Thymeleaf,不用JSP,因為Thymeleaf語法更加簡單,功能更加強大,如何導入呢,其實對于SpringBoot不就是一個引入依賴的事情嘛,很簡單,依賴包如下

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

這里引入的是SpringBoot默認的Thymeleaf依賴版本,如果我們要切換版本怎么切換,如下,加上對應(yīng)版本號就可以了

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

使用Thymeleaf

在使用Thymeleaf語法之前,我們先來實驗一下,我們只要把HTML頁面放在templates目錄下就可以了,Thymeleaf就會自動渲染
在這里插入圖片描述
在這里插入圖片描述

正式使用

我們先編寫一個控制器,用來跳轉(zhuǎn)渲染,控制器中,加入我們待會兒要在HTML通過Thymeleaf獲取的一個變量值,如下
在這里插入圖片描述
在HTML編寫代碼之前,現(xiàn)在HTML的頭標簽中導入thymeleaf的名稱空間,這樣我們在使用Thymeleaf語法的時候,Idea就會提示相關(guān)代碼。
在這里插入圖片描述
編寫好之后啟動項目,我們通過訪問http://localhost:8080/success來訪問success.html頁面,訪問之后結(jié)果如下
在這里插入圖片描述

SpringBoot自動配置MVC

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

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

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

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

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

后面我們會討論怎么對SpringMVC進行完全控制。

拓展SpringMVC

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

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

@EnableWebMvc

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

如何修改SpringBoot的默認配置

SpringBoot在自動配置很多組件的時候,先看容器中有沒有哦用戶自己配置的(@Bean、@Component)如果有就用用戶配置的,如果沒有就自動配置,如果有些組件可以有多個(如ViewResolver)將用戶配置和自己默認的組合起來

在SpringBoot中會有非常多的xxxConfigurer幫助我們進行SpringMVC的拓展配置。

寫一篇

這篇博文我們在進行正式開發(fā)前的一些準備,下一篇我們來引入靜態(tài)資源文件編寫相關(guān)代碼。

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