javascript
SpringBoot学习系列之一
一、SpringBoot是什么
spring Boot可以基于Spring輕松創建可以“運行”的、獨立的、生產級的應用程序。 對Spring平臺和第三方類庫我們有自己看法和意見(約定大于配置),所以你最開始的時候不要感到奇怪。大多數Spring Boot應用程序需要很少的Spring配置。
您可以使用Spring Boot創建可以使用java -jar或傳統 war 包部署啟動的Java應用程序。 我們還提供一個運行“spring scripts”的命令行工具。
那我們舉個栗子:
假設你受命用Spring開發一個簡單的Hello World Web應用程序。你該做什么?我能想到一些基本的需要。
1.一個項目結構,其中有一個包含必要依賴的Maven或者Gradle構建文件,最起碼要有SpringMVC和Servlet API這些依賴。
2.?一個web.xml文件(或者一個 WebApplicationInitializer 實現),其中聲明了Spring的 DispatcherServlet 。
3.一個啟用了Spring MVC的Spring配置。
4.一個控制器類,以“Hello World”響應HTTP請求。
5.一個用于部署應用程序的Web應用服務器,比如Tomcat。
最讓人難以接受的是,這份清單里只有一個東西是和Hello World功能相關的,即控制器,剩下的都是Spring開發的Web應用程序必需的通用樣板。既然所有Spring Web應用程序都要用到它們,那為什么還要你來提供這些東西呢?
而我們要用SpringBoot來寫一個HelloWorld的WEB應用程序。我們需要做些什么呢。
1.?設置SpringBoot的Parent
?
2.?導入SpringBoot的Web支持
?
3.?在啟動類中寫一個HelloWorld的方法
?
4.然后在地址欄中輸入:localhost:8080/helloboot,就會出來我們想要的內容。
其實我們用IDEA來開發的話,第一步第二步也不需要我們去做,直接選擇SpringIntializr來進行開發就可以了。
?
所以你現在是不是明白SpringBoot是做什么的,和Spring有什么區別了呢。
二、SpringBoot的特點
????????1.自動配置:針對很多Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置。Spring Boot實現了自動配置,這讓Spring能夠智能探測正在構建何種應用程序,自動配置必要的組件以滿足應用程序的需要。對于那些常見的配置場景,不再需要顯式地編寫配置了,Spring會替你料理好一切。
????????2.起步依賴:告訴Spring Boot需要什么功能,它就能引入需要的庫。
????????3.命令行界面:這是Spring Boot的可選特性,借此你只需寫代碼就能完成完整的應用程序,無需傳統項目構建。
????????4.Actuator:讓你能夠深入運行中的Spring Boot應用程序,一探究竟。
三、代碼解釋
????????1、Spring Boot父級依賴,有了這個,當前的項目就是Spring Boot項目了,spring-boot-starter-parent是一個特殊的starter,它用來提供相關的Maven默認依賴,使用它之后,常用的包依賴可以省去version標簽。
????????2、在pom.xml文件中,dependencies是父起步依賴。
Spring Boot通過提供眾多起步依賴降低項目依賴的復雜度。起步依賴本質上是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加在一起即支持某項功能。很多起步依賴的命名都暗示了它們提供的某種或某類功能。
????????3、Spring Boot提供了很多”開箱即用“的依賴模塊,都是以spring-boot-starter-xx作為命名的。舉個例子來說明一下這個起步依賴的好處,比如組裝臺式機和品牌機,自己組裝的話需要自己去選擇不同的零件,最后還要組裝起來,期間有可能會遇到零件不匹配的問題。耗時又消力,而品牌機就好一點,買來就能直接用的,后續想換零件也是可以的。相比較之下,后者帶來的效果更好點(這里就不討論價格問題哈),起步依賴就像這里的品牌機,自動給你封裝好了你想要實現的功能的依賴。就比如我們之前要實現web功能,引入了spring-boot-starter-web這個起步依賴。
????4、@SpringBootApplication 開啟了Spring的組件掃描和Spring Boot的自動配置功能。實際上, @SpringBootApplication 將三個有用的注解組合在了一起。
????????Spring的 @Configuration :標明該類使用Spring基于Java的配置。
????????Spring的 @ComponentScan :啟用組件掃描,這樣你寫的Web控制器類和其他組件才能被自動發現并注冊為Spring應用程序上下文里的Bean。
????????Spring Boot 的 @EnableAutoConfiguration :啟用 Spring 應用程序上下文的自動配置,試圖猜測和配置您可能需要的bean。自動配置類通常采用基于你的 classpath 和已經定義的 beans 對象進行應用。
就是這一行配置開啟了Spring Boot自動配置的魔力,讓你不用再寫成篇的配置了。
????????5、@RestController注解相當于@ResponseBody + @Controller合在一起的作用。
????1)如果只是使用@RestController注解Controller,則Controller中的方法無法返回jsp頁面,配置的視圖解析器InternalResourceViewResolver則不起作用,返回的內容就是Return 里的內容(String/JSON)。
例如:本來應該到success.jsp頁面的,則其顯示success.
????2)如果使用@RestController注解Controller,需要返回到指定頁面,則需要配置視圖解析器InternalResourceViewResolver,可以利用ModelAndView返回試圖。
????3)如果使用@Controller注解Controller,如果需要返回JSON,XML或自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody注解。
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的SpringBoot学习系列之一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据结构编程_写给Pytho
- 下一篇: SpringCloud 入门教程(八):