Spring bootjava
簡介:是spring社區發佈的一個開源項目,旨在幫助開發者更快更簡單的構建項目,使用習慣優於配置,的理念讓你的項目快速的跑起來,使用springboot能夠不用,或者不多的配置文件。web
Spring boot 核心功能spring
獨立運行spring項目:能夠以jar包的形式獨立進行運行 經過java –jar xxx.jar方式進行運行,不像以前的你還要打成一個war包放在webapp底下才能夠。json
內嵌servlet容器:好比tomcattomcat
提供start簡化maven配置:一個maven項目,使用spring-boot-start-web時,會自動加載spring-boot的依賴包springboot
自動配置springmvc
準生產的應用監控:提供http進行監控app
無代碼生成和xml配置:主要經過條件註解來實現webapp
這個依賴會使得自動加載剩下的依賴,建立一個新的項目,要想讓他運行起來,這個依賴是必須的,若是沒有這個依賴你的項目是跑不起來的。maven
Maven的用戶能夠經過繼承spring-boot-starter-parent項目來得到一些合理的默認配置,這個parent提供瞭如下特性
默認使用java8
使用UTF-8編碼
一個引用管理的功能繼承了這個parent以後,咱們的其餘的依賴就能夠不用寫version版本信息了
識別過來的資源過濾
識別插件的配置
可以識別application.xml 和applicaton.yml類型的文件,同時也能夠支持application-dev類型的文件,這樣的話就能更好的在不一樣的生產環境下進行使用。
Maven把默認的佔位符${}修改成了@..@
固然了,若是一些依賴咱們不想使用默認的版本的話,咱們能夠直接加上版本號
這個依賴 若是你須要將maven打成一個jar包的話,咱們須要配置一下這個maven組件,位置通常放在dependenies 以後
Starter 能夠理解爲一種插件,咱們能夠理解爲一種插件相似於js,他能夠發現springboot項目classpath類下面的所須要的bean,而且植入bean。
再來講說裏面的一些註解
@Resource和@Autowired
爲何把這兩個合在一塊列出來,由於這兩很像
@Resource 是javaee裏面提供的,使用這個註解會自動注入bean,並且這個是ee裏面提供的因此和spring沒有多大關係,因此減小了一些java和spring之間代碼的耦合,這個註解是按照名字進行注入的,固然若是有多個子類的話他會報錯,由於他不知道該調用那個子類。
咱們須要在下面加required = false
@Atowired這個是spring提供的,是按照類型進行注入裝配的,若是想讓他進行按照名字裝配,則須要在@Atowired下面加@qualifier(「name」)這個註解
@Controller 要使用這個註解的話,你須要在控制器方法類上面不只要加@RequestMapping 你還要加@RequestBody 表明返回json格式的數據
@RestController 若是咱們使用這個註解的話,那麼咱們就能夠不用使用@RequestBody這個註解,由於@RestController = @Controller + @RequestMapping
@Repository用來標註數據訪問組件
@Controller用來標註控制層的組件
@Service 用來標註 業務層的組件
Spring2.5爲咱們引入了組件自動掃描機制 他在類路徑下尋找標註了上述註解的類,並把這些類歸入spring容器中管理,他的做用和在.xml中配置bean節點組件是同樣的
好比
這個在啓動類上面的註解他就是自動掃描dao層的數據,若是咱們不加這個的話,咱們就須要在dao層每個類上面加@Repository註解,都是同樣的效果。
這個是一個複合註解包括@ComponentScan 和 @SpringBootConfiguration 和 @EnableAutoConfiguration
@SpringBootConfiguration 標註當前類爲配置類
@EnableAutoConfiguration 的做用啓動自動的配置,這個註解的意思就是springboot根據你添加的jar包來配置你項目的默認配置,好比他會根據你添加的jar包來配置你項目的默認配置,好比spring-boot-start-web來判斷你的項目是否須要添加了webmvc和tomcat,就會幫你自動配置web項目中所須要的默認配置
@ComponentScan掃描當前包及其子包下面被@component,@Controller,@Service,@Repository標記標註的類而後歸入spring管理容器中去
固然了 咱們在啓動類中能夠使用@ComponentScan代替其實也能夠運行,緣由是這兩個註解是一個相互包含的關係。