首先學習一門語言,需要知道其優點,說道springboot,很多人只知道能簡化配置,其他的概不清楚。
優點
創建獨立的Spring應用程序
SpringBoot可以jar包的形式進行獨立的運行,使用:java -jar xx.jar就可以成功運行項目,或者在項目的主程序中運行main函數
嵌入的Tomcat,Jetty或者Undertow,無序部署WAR文件
Spring 項目部署時需要我們在服務器上部署 tomcat,然后把項目打成 war 包扔到 tomcat里
springboot項目不需要單獨下載Tomcat等傳統服務器,內嵌容器,使得我們可以執行運行項目的主程序main函數,並讓項目的快速運行,另外,也降低對運行環境的基本要求,環境變量中有JDK即可。
允許通過maven來根據需要獲取starter
Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴,通過這些starter項目就能以Java Application的形式運行Spring Boot項目,而無需其他服務器配置
starter pom:https://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/reference/htmlsingle/#using-boot-starter
盡可能自動配置Spring
Spring Boot提供Spring框架的最大自動化配置,大量使用自動配置,使得開發者對Spring的配置盡量減少
Spring Boot更多的是采用 Java Config 的方式,對 Spring 進行配置。
新建一個類,但是我不用 @Service注解,也就是說,它是個普通的類,那么我們如何使它也成為一個 Bean 讓 Spring 去管理呢?只需要@Configuration 和@Bean兩個注解即可
public class TestService { public String sayHello () { return "Hello Spring Boot!"; } } import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JavaConfig { @Bean public TestService getTestService() { return new TestService(); } }
@Configuration表示該類是個配置類,@Bean表示該方法返回一個 Bean。這樣就把TestService作為 Bean 讓 Spring 去管理了,在其他地方,我們如果需要使用該 Bean,和原來一樣,直接使用@Resource注解注入進來即可使用,非常方便。
提供生產就緒型功能,如指標、健康檢查和外部配置
Spring Boot提供了基於http、ssh、telnet對運行時的項目進行監控;我們可以引入 spring-boot-start-actuator 依賴,直接使用 REST 方式來獲取進程的運行期性能參數,從而達到監控的目的,比較方便。但是 Spring Boot 只是個微框架,沒有提供相應的服務發現與注冊的配套功能,沒有外圍監控集成方案,沒有外圍安全管理方案,所以在微服務架構中,還需要 Spring Cloud 來配合一起使用。
絕對沒有代碼生成,對XML沒有要求配置
缺點
依賴太多,一個spring boot項目就有很多M
缺少服務的注冊和發現等解決方案
缺少監控集成方案,安全管理方案
本文借鑒:SpringBoot的優點《深入淺出SpringBoot 2.x》