Spring Boot 入門概念介紹

使用spring-boot快速開發spring應用

轉 http://itindex.net/detail/49108-spring-boot-%E5%BC%80%E5%8F%91

spring多年以來一直都是java平臺開發web應用的主流技術,在標準的J2EE架構以外提供了一個輕量級的解決方案。雖然spring提供了不少功能,簡化了java平臺的企業應用開發,下降了開發工做量,但相比較其它語言的一些框架(例如ruby on rails,python Django)來講,基於spring 的開發仍然比較複雜,尤爲是新建一個項目時,須要進行各類配置,重複的工做量較大。 java

 

針對這個問題spring開源社區一直都在持續不斷地進行探索,提供相應的解決方案。 python

 

grails   
使用groovy語言,封裝了spring,提供了一個高效的全棧框架,在開發效率方面可媲美ROR,但運行時性能比ROR要高不少。grails用戶羣較大,目前開發社區比較活躍。  
 
  spring roo  
在spring之上提供一個純java的封裝,使用到了osgi,aspectj等技術,提供相似ROR的開發模式,但未成功推廣,用戶很少,目前開發基本停滯。  
 
  spring-boot  
  spring-boot 是spring社區今年推出的一個新項目,其主要目的也是提升生產率,尤爲是快速建立和運行一個spring 應用。  
 
 
  spring-boot 功能特性   
 
spring-boot主要功能特性以下:  
 
  建立獨立運行的spring應用  
使用spring-boot,可將整個spring應用打包爲一個獨立的jar文件,內嵌tomcat或者jetty容器。經過 java -jar xxx.jar 便可運行,免去了部署到應用服務器的步驟。  
 
  啓動器  
針對典型的應用需求,提供了一些標準的啓動器配置,聲明對這些啓動器的依賴便可得到相關功能。例如若是須要使用jpa進行數據訪問,僅需加入  web

  ${project.groupId}
  spring-boot-starter-data-jpa

spring-boot會自動配置經過jpa進行數據訪問須要的bean。   
 
 
  自動配置spring  
spring-boot會根據classpath包含的內容自動推測用戶的需求並自動配置。例如若是在classpath包含了hsqldb,而且用戶未配置數據庫鏈接,spring-boot將會配置一個hsqldb內存數據庫和數據源。  
 
  自動生成生產環境須要的特性  
spring-boot可以爲應用自動加入一些典型的生產環境下的功能特性,例如:外部配置,安全,日誌,管理,審計等。  
 
  無代碼生成,無xml配置需求  
spring-boot無代碼生成,全部的配置可經過代碼完成(spring 的javaconfig),不須要使用xml(雖然能夠使用)。  
 
 
  spring-boot組件  
 
spring-boot項目分爲幾個不一樣的組件,下面是每一個組件的說明  
     
  spring-boot    
SpringBootApplication  ,提供靜態方法,用於開發獨立運行的應用  
嵌入容器配置,tomcat或者jetty  
外部配置支持,從命令行,屬性文件讀取配置  
spring context 的初始化   
 
  spring-boot-autoconfigure  
自動配置框架:根據classpath推測用戶須要的功能並自動配置。例如若是在classpath 包含了  HSQLDB,而且沒有配置數據庫鏈接,spring-boot-autoconfig將自動配置一個內存數據庫。spring-boot-autoconfigure使用spring 的javaconfig功能,爲一個 @Configuration 類加上 @Conditional註解,註解聲明的條件知足時,配置就會生效。用戶可編寫本身的配置類對自動配置進行擴展。  
 
  spring-boot-starters  
一組預約義的依賴,添加不一樣類型的應用功能。例如若是須要jpa數據訪問,加入 spring-boot-starter-data-jpa  
 
  spring-boot cli  
一個命令行工具,能夠直接運行一個groovy腳本做爲spring 應用。例如如下groovy代碼定義  
了一個spring mvc controller,經過運行    spring run HelloController.groovy 便可運行一個spring web 應用。 spring

@Controller
class HelloController {
    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!"
    }
}

groovy語言語法很是相似java語言,大部分代碼均可以直接拷貝使用。spring-boot cli提供的功能很是適用於快速原型開發,以及在開發環境中搭建測試/模擬服務器等。(今年一個國人開發的開源項目   moco得到了「   duke選擇獎」,moco的主要功能就是搭建測試/模擬服務器,藉助於spring-boot cli,只須要用java語言,幾分鐘以內也能夠搭建一個測試/模擬服務器)   
 
  spring-boot-actuator  
提供更多面向生產環境的支持,安全,日誌,管理,審計。  
 
  spring-boot-loader  
使用java -jar xxx.jar 運行應用的實現,對打包文件格式進行了定義。通常經過gradle插件或者 maven插件使用。這兩個插件提供了在gradle和maven構建系統中使用spring-boot的功能。使用你的IDE建立一個普通的java 項目,加入這兩個插件便可在項目中引入spring-boot。下面是使用java語言開發的controller: sql

package hello;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@Controller
@EnableAutoConfiguration
public class SampleController {
    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}


相比較groovy而言,java語言開發的代碼中須要包含一個 main 靜態執行入口,在其中調用 SpringApplication.run 方法啓動spring 應用。  
對於包含上述代碼的項目使用gradle和maven插件,能夠將spring應用打包成爲一個單獨的jar文件,而後使用  
java -jar xxxx.jar 執行。 數據庫

                                   
相關文章
相關標籤/搜索