在剛接觸SSM框架的時候,想必都會被這個框架的配置文件所煩擾,須要本身手動配置的東西很是多,哪怕有些東西本身不須要也是須要配置的。而SpringBoot此時就應運而生,減小了你們的配置過程。相信都聽過「約定優於配置」的這樣一句話,就是說系統,類庫,框架應該假定合理的默認值,而非要求提供沒必要要的配置,但是使用Spring或者SpringMVC的話依然有許多這樣的東西須要咱們進行配置,這樣不只徒增工做量並且在跨平臺部署時容易出問題。 簡單來講,就是使用SpringBoot能夠是咱們可以快速的構建一個能用運行的Spring項目。html
介紹完Springboot之後,讓咱們開始搭建一個簡單的「Hello World!」的SpringBoot項目。千里之行始於足下,相信第一個java項目也是從「hello,world!」開始的。不要小瞧了這第一步,有多少人是在第一步遭受到了挫折從而放棄了。可是SpringBoot給提供的第一步啓動實在是簡單,和它的宗旨也正相符合。快速而簡便的構建項目。java
<center><img src="http://p9jfgo4wc.bkt.clouddn.com/1531313795236.jpg" width="60%" height="60%"/></center>算法
能夠清楚的看到SpringBoot的生成文件結構,其中FirstSpringBootApplication是和你的項目名是一致的,它至關於程序的入口處,而resource文件夾下的application文件是配置文件,例如想要配置啓動的tomcat端口號均可以在此配置。build.gralde是因爲我選擇的是gradle因此生成的這個文件,此文件是能夠將想要引用的jar包寫在裏面。gradle會自動的從網上或者本地下載相應的jar包。spring
在項目的啓動文件中加入這行代碼,固然也能夠本身建一個java文件。可是要加上@RestController註解。此時如果tomcat
@RequestMapping("/") String home() { return "Hello"; }
爲何是@RestController而不是@Controller呢,此時咱們能夠點擊進@RestController中能夠看到它是由@Controller和@ResponseBody組成的註解。其中加不加@ResponseBody是有區別的,若是加上的話那麼就會將你的返回值做爲數據返回,若是不加的話那麼就會當作頁面的名稱。舉個例子像上面的代碼若是有@ResponseBody的話那麼就會返回給頁面Hello字符串,若是是沒有的話就會跳轉到Hello.html或者Hello.jsp頁面,具體是jsp仍是html頁面,這得看SpringMvc的配置了,這裏就不詳細解釋。而後直接運行FirstSpringBootApplication.java裏面main方法便可啓動。打開了啓動文件你會發現上面帶了一個@SpringBootApplocation註解。這個註解接下來咱們再解釋。而後在頁面輸入localhost:8080便可看見Hello。springboot
一般來講,SpringBoot的啓動類建議放在代碼的根目錄下的。由於@EnableAutoConfiguration這個註解是基於你的啓動類來掃描的,意思就是掃描啓動類所在的文件夾以及如下的全部文件。app
com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web +- CustomerController.java
進入到@SpringBootApplocation這個註解當中時,能夠發現裏面還有其餘的註解框架
<center><img src="http://p9jfgo4wc.bkt.clouddn.com/7A5DFBDF-46A1-4C30-ABA5-DCA3F10A9B1D.png"/></center> 其中最重要的是@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan這三個註解。dom
這是一個類級別的註解,這個註解的做用是猜,爲何是猜呢。由於他會基於你的jar包依賴而猜想將會怎樣的配置。例如spring-boot-starter-web你添加了這個jar包之後其中包含着Tomcat和SpringMVC,這個註解會猜想這個項目會是一個web項目,因此他就會自動的配置了Spring。
固然你要能夠本身定製本身須要的配置,例如若是你想添加本身的數據源DateSource的話,那麼本身寫一個類,上面加上@Configure的註解,那麼在項目啓動的時候就會優先使用本身寫的配置。若是想知道項目中有哪些是自動配置了,那麼啓動項目的時候用--debug啓動那麼在控制檯中的日誌中就會有顯示。
在Sping中你可使用註解進行注入Bean,例如@Controller@Service等等,這些都是自動注入的。可是得設置掃描的包路徑,直接@ComponentScan("org.example.web")這樣既可,就是掃描org.example.web下的包。這個註解和xml中對應的配置是
<context:component-scan base-package="org.example.web"/>
加上此註解的就代表了一個類提供SpringBoot應用。在以前的Spring的Test模塊中,若是想要進行模塊化的測試的話,或許會去尋找@ContextConfiguration進行加載一些資源文件,另外也可能須要寫針對於Test模塊的@Configuration,可是在SpringBoot中不用如此,由於他會有一個算法,會在模塊化測試的時候回自動的尋找@SpringBootConfiguration註解。這樣就不須要單獨的配置測試模塊的配置文件了,可是若是想定製化測試模塊的配置文件話也能夠,只要加上@TestConfiguration便可。
SpringBoot是不推薦使用xml的配置文件,他所想要的結果是全部的配置都是java類上面加上@Configuration配置。可是有的項目確實得須要xml配置文件,這時候就可使用@ImportResource註解