Spring框架
Spring框架是Java平台上的一種開源套用框架,提供具有控制反轉特性的容器。儘管Spring框架自身對編程模型沒有限制,但其在Java套用中的頻繁使用讓它備受青睞,以至於後來讓它作為
EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發提供了一系列的解決方案,比如利用控制反轉的核心特性,並通過依賴注入實現控制反轉來實現管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數據訪問,提供大量優秀的Web框架方便開發等等。Spring框架具有控制反轉(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML檔案或類上特定Java註解來配置對象,開發者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有
面向切面編程(AOP)框架,SpringAOP框架基於代理模式,同時運行時可配置;AOP框架主要針對模組之間的交叉關注點進行模組化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現。Spring的事務管理框架為Java平台帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,並且幾乎可以在Java平台的任何環境中工作。Spring集成多種事務模板,系統可以通過事務模板、XML或Java註解進行事務配置,並且事務框架集成了訊息傳遞和快取等功能。Spring的數據訪問框架解決了開發人員在應用程式中使用資料庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數據對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數據訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數據訪問提供了靈活的抽象。Spring框架最初是沒有打算構建一個自己的WebMVC框架,其開發人員在開發過程中認為現有的StrutsWeb框架的呈現層和請求處理層之間以及請求處理層和模型之間的分離不夠,於是創建了SpringMVC。
SpringBoot簡介
SpringBoot是由Pivotal團隊在2013年開始研發、2014年4月發布第一個版本的全新開源的輕量級框架。它基於Spring4.0設計,不僅繼承了Spring框架原有的優秀特性,而且還通過簡化配置來進一步簡化了Spring套用的整個搭建和開發過程。另外SpringBoot通過集成大量的框架使得依賴包的版本衝突,以及引用的不穩定性等問題得到了很好的解決。
特點
SpringBoot所具備的特徵有:
(1)可以創建獨立的
Spring應用程式,並且基於其Maven或Grandel外掛程式,可以創建可執行的JARs和WARs;
(2)內嵌Tomcat或Jetty等Servlet容器;
(3)提供自動配置的“starter”項目對象模型(POMS)以簡化
Maven配置;
(4)儘可能自動配置Spring容器;
(5)提供準備好的特性,如指標、健康檢查和外部化配置;
(6)絕對沒有代碼生成,不需要XML配置。
重要策略
SpringBoot框架中還有兩個非常重要的策略:開箱即用和約定優於配置。開箱即用,Outofbox,是指在開發過程中,通過在MAVEN項目的pom檔案中添加相關依賴包,然後使用對應註解來代替繁瑣的XML配置檔案以管理對象的生命周期。這個特點使得開發人員擺脫了複雜的配置工作以及依賴的管理工作,更加專注於業務邏輯。約定優於配置,Convention over configuration,是一種由SpringBoot本身來配置目標結構,由開發者在結構中添加信息的軟體設計範式。這一特點雖降低了部分靈活性,增加了BUG定位的複雜性,但減少了開發人員需要做出決定的數量,同時減少了大量的XML配置,並且可以將代碼編譯、測試和打包等工作自動化。
SpringBoot套用系統開發模板的基本架構設計從前端到後台進行說明:前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它們都是用Java語言編寫的,渲染模板並輸出相應文本,使得界面的設計與套用的邏輯分離,同時前端開發還會使用到Bootstrap、AngularJS、JQuery等;在瀏覽器的數據傳輸格式上採用Json,非xml,同時提供RESTfulAPI;SpringMVC框架用於數據到達伺服器後處理請求;到數據訪問層主要有Hibernate、MyBatis、JPA等持久層框架;資料庫常用
MySQL;開發工具推薦IntelliJIDEA。
安裝步驟
從最根本上來講,Spring Boot就是一些庫的集合,它能夠被任意項目的構建系統所使用。簡便起見,該框架也提供了命令行界面,它可以用來運行和測試Boot套用。框架的發布版本,包括集成的CLI(命令行界面),可以在Spring倉庫中手動下載和安裝。一種更為簡便的方式是使用Groovy環境管理器(Groovy enVironment Manager,GVM),它會處理Boot版本的安裝和管理。Boot及其CLI可以通過GVM的命令行gvm install springboot進行安裝。在OS X上安裝Boot可以使用Homebrew包管理器。為了完成安裝,首先要使用brew tap pivotal/tap切換到Pivotal倉庫中,然後執行brew install springboot命令。
要進行打包和分發的工程會依賴於像
Maven或
Gradle這樣的構建系統。為了簡化依賴圖,Boot的功能是模組化的,通過導入Boot所謂的“starter”模組,可以將許多的依賴添加到工程之中。為了更容易地管理依賴版本和使用默認配置,框架提供了一個parent POM,工程可以繼承它。