不學無數——SpringBoot入門Ⅰ

SpringBoot

1.SpringBoot簡介

在剛接觸SSM框架的時候,想必都會被這個框架的配置文件所煩擾,須要本身手動配置的東西很是多,哪怕有些東西本身不須要也是須要配置的。而SpringBoot此時就應運而生,減小了你們的配置過程。相信都聽過「約定優於配置」的這樣一句話,就是說系統,類庫,框架應該假定合理的默認值,而非要求提供沒必要要的配置,但是使用Spring或者SpringMVC的話依然有許多這樣的東西須要咱們進行配置,這樣不只徒增工做量並且在跨平臺部署時容易出問題。 簡單來講,就是使用SpringBoot能夠是咱們可以快速的構建一個能用運行的Spring項目。html

1.1 SpringBoot優勢

  • 可以快速構建一個可以獨立運行的Spring項目
  • 內嵌有Tomcat容器,無需配置Tomcat
  • 提供了許多starter,簡化了許多的配置
  • 無代碼生成,沒有xml的配置

2.第一個SpringBoot項目啓動

2.1 項目搭建

介紹完Springboot之後,讓咱們開始搭建一個簡單的「Hello World!」的SpringBoot項目。千里之行始於足下,相信第一個java項目也是從「hello,world!」開始的。不要小瞧了這第一步,有多少人是在第一步遭受到了挫折從而放棄了。可是SpringBoot給提供的第一步啓動實在是簡單,和它的宗旨也正相符合。快速而簡便的構建項目。java

**https://start.spring.io/**這是SpringBoot提供的創建項目的網站,點擊進去之後選擇所須要的版本、語言、功能之後點擊生成便可生成一個項目包,若是是想要啓動一個簡單的web項目,那麼就在功能處輸入web,那麼會在創建項目的時候自動引入了springboot啓動web包。而後用編譯器打開項目之後你會發現SpringBoot已經將文件目錄都建立好了。web

<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

2.2 項目啓動

在項目的啓動文件中加入這行代碼,固然也能夠本身建一個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

2.3項目結構

一般來講,SpringBoot的啓動類建議放在代碼的根目錄下的。由於@EnableAutoConfiguration這個註解是基於你的啓動類來掃描的,意思就是掃描啓動類所在的文件夾以及如下的全部文件。app

com
 +- example
     +- myproject
         +- Application.java
         |
         +- domain
         |   +- Customer.java
         |   +- CustomerRepository.java
         |
         +- service
         |   +- CustomerService.java
         |
         +- web
             +- CustomerController.java

3.@SpringBootApplocation註解詳解

進入到@SpringBootApplocation這個註解當中時,能夠發現裏面還有其餘的註解框架

<center><img src="http://p9jfgo4wc.bkt.clouddn.com/7A5DFBDF-46A1-4C30-ABA5-DCA3F10A9B1D.png"/></center> 其中最重要的是@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan這三個註解。dom

3.1@EnableAutoConfiguration

這是一個類級別的註解,這個註解的做用是猜,爲何是猜呢。由於他會基於你的jar包依賴而猜想將會怎樣的配置。例如spring-boot-starter-web你添加了這個jar包之後其中包含着Tomcat和SpringMVC,這個註解會猜想這個項目會是一個web項目,因此他就會自動的配置了Spring。

固然你要能夠本身定製本身須要的配置,例如若是你想添加本身的數據源DateSource的話,那麼本身寫一個類,上面加上@Configure的註解,那麼在項目啓動的時候就會優先使用本身寫的配置。若是想知道項目中有哪些是自動配置了,那麼啓動項目的時候用--debug啓動那麼在控制檯中的日誌中就會有顯示。

3.2 @ComponentScan

在Sping中你可使用註解進行注入Bean,例如@Controller@Service等等,這些都是自動注入的。可是得設置掃描的包路徑,直接@ComponentScan("org.example.web")這樣既可,就是掃描org.example.web下的包。這個註解和xml中對應的配置是

<context:component-scan base-package="org.example.web"/>

3.3@SpringBootConfiguration

加上此註解的就代表了一個類提供SpringBoot應用。在以前的Spring的Test模塊中,若是想要進行模塊化的測試的話,或許會去尋找@ContextConfiguration進行加載一些資源文件,另外也可能須要寫針對於Test模塊的@Configuration,可是在SpringBoot中不用如此,由於他會有一個算法,會在模塊化測試的時候回自動的尋找@SpringBootConfiguration註解。這樣就不須要單獨的配置測試模塊的配置文件了,可是若是想定製化測試模塊的配置文件話也能夠,只要加上@TestConfiguration便可。

3.4其餘註解

3.4.1@ImportResource

SpringBoot是不推薦使用xml的配置文件,他所想要的結果是全部的配置都是java類上面加上@Configuration配置。可是有的項目確實得須要xml配置文件,這時候就可使用@ImportResource註解

相關文章
相關標籤/搜索