什麼是SpringBoot
SpringBoot是Spring項目中的一個子工程,與咱們所熟知的Spring-framework 同屬於spring的產品
官方介紹:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
咱們一般把Spring Boot稱爲搭建程序的腳手架。其最主要做用就是幫咱們快速的構建龐大的spring項目,而且儘量的減小一切xml配置,作到開箱即用,迅速上手,讓咱們關注於業務而非配置。html
爲何要學習SpringBoot
java一直被人詬病的一點就是臃腫、麻煩。當咱們還在辛苦的搭建項目時,可能Python程序員已經把功能寫好了,究其緣由主要是兩點:java
複雜的配置
項目各類配置實際上是開發時的損耗, 由於在思考 Spring 特性配置和解決業務問題之間須要進行思惟切換,因此寫配置擠佔了寫應用程序邏輯的時間。
混亂的依賴管理
項目的依賴管理也是件吃力不討好的事情。決定項目裏要用哪些庫就已經夠讓人頭痛的了,你還要知道這些庫的哪一個版本和其餘庫不會有衝突,這也是件棘手的問題。而且,依賴管理也是一種損耗,添加依賴不是寫應用程序代碼。一旦選錯了依賴的版本,隨之而來的不兼容問題毫無疑問會是生產力殺手。
而SpringBoot讓這一切成爲過去!程序員
SpringBoot的特色
Spring Boot 主要特徵是:web
建立獨立的spring應用程序
直接內嵌tomcat、jetty和undertow(不須要打包成war包部署)
提供了固定化的「starter」配置,以簡化構建配置
儘量的自動配置spring和第三方庫
提供產品級的功能,如:安全指標、運行情況監測和外部化配置等
絕對不會生成代碼,而且不須要XML配置
總之,Spring Boot爲全部 Spring 的開發者提供一個開箱即用的、很是快速的、普遍接受的入門體驗
更多細節,你們能夠到官網查看。spring
SpringBoot快速入門
方式一:Maven 構建項目
一、訪問 http://start.spring.io/
二、選擇構建工具 Maven Project、Java、Spring Boot 版本 2.1.3 以及一些工程基本信息,可參考下圖所示:apache
三、點擊 Generate Project 下載項目壓縮包
四、解壓後,使用 Idea 導入項目,File -> New -> Model from Existing Source… -> 選擇解壓後的文件夾 -> OK,選擇 Maven 一路 Next,OK done!
五、若是使用的是 Eclipse,Import -> Existing Maven Projects -> Next -> 選擇解壓後的文件夾 -> Finsh,OK done!tomcat
方式二:Idea 構建項目
一、環境要求:安全
二、Idea 建立一個空的demo工程,而後在工程中建立moduel(maven跳過骨架)
三、引入依賴:SpringBoot如何幫助咱們管理依賴?
SpringBoot提供了一個名爲spring-boot-starter-parent的工程,裏面已經對各類經常使用依賴(並不是所有)的版本進行了管理,咱們的項目須要以這個項目爲父工程,這樣咱們就不用操心依賴的版本問題了,須要什麼依賴,直接引入座標便可springboot
添加父工程
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
添加啓動器
爲了讓SpringBoot幫咱們完成各類自動配置,咱們必須引入SpringBoot提供的自動配置依賴,咱們稱爲啓動器。spring-boot-starter-parent工程將依賴關係聲明爲一個或者多個啓動器,咱們能夠根據項目需求引入相應的啓動器,由於咱們是web項目,這裏咱們引入web啓動器:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
這個時候,咱們會發現項目中多出了大量的依賴,這些都是SpringBoot根據spring-boot-starter-web這個依賴自動引入的,並且全部的版本都已經管理好,不會出現衝突。app
完整的POM
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ityang.springboot</groupId>
<artifactId>ityang-springboot</artifactId>
<version>1.0.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
四、添加全局的啓動類:若是單獨的寫在一個個Controller裏面,沒法啓動多個Controller,每一個main方法都監聽8080端口。因此單獨寫出作一些框架配置
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
五、編寫HelloController
@RestController
public class HelloController {
@GetMapping("show")
public String test(){
return "hello Spring Boot!";
}
}
六、訪問localhost:8080/show,測試
spingboot建議的目錄結果以下(root package結構:com.example.myproject)
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|
註解分析
一、@EnableAutoConfiguration
註解說明:開啓spring應用程序的自動配置,SpringBoot基於你所添加的依賴和你本身定義的bean,試圖去猜想並配置你想要的配置。好比咱們引入了spring-boot-starter-web,而這個啓動器中幫咱們添加了tomcat、SpringMVC的依賴。此時自動配置就知道你是要開發一個web應用,因此就幫你完成了web及SpringMVC的默認配置了!
二、@ComponentScan
註解說明:配置組件掃描的指令。提供了相似與<context:component-scan>標籤的做用,經過basePackageClasses或者basePackages屬性來指定要掃描的包。若是沒有指定這些屬性,那麼將從聲明這個註解的類所在的包開始,掃描包及子包。
咱們的@ComponentScan註解聲明的類就是main函數所在的啓動類,所以掃描的包是該類所在包及其子包。通常啓動類會放在一個比較淺的包目錄中。
三、@SpringBootApplication
它實際上是一個組合註解,這裏重點的註解有3個:
@SpringBootConfiguration
@EnableAutoConfiguration:開啓自動配置
@ComponentScan:開啓註解掃描
四、@SpringBootConfiguration
經過查看註解的源碼,發如今這個註解上面,又有一個@Configuration註解。經過上面的註釋閱讀咱們知道:這個註解的做用就是聲明當前類是一個配置類,而後Spring會自動掃描到添加了@Configuration的類,而且讀取其中的配置信息。而@SpringBootConfiguration是來聲明當前類是SpringBoot應用的配置類,項目中只能有一個。因此通常咱們無需本身添加。
原文出處:https://www.cnblogs.com/itboxue/p/12387398.html