前言
Spring Boot是由Pivotal團隊提供的全新框架
,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應用開發(fā)領域(rapid application development)成為領導者
。
??作者簡介:熱愛跑步的恒川,致力于C/C++、Java、Python等多編程語言,熱愛跑步,喜愛音樂的一位博主。
??本文收錄于恒川的日常匯報系列,大家有興趣的可以看一看
??相關專欄C語言初階、C語言進階系列等,大家有興趣的可以看一看
??Python零基礎入門系列,Java入門篇系列正在發(fā)展中,喜歡Python、Java的朋友們可以關注一下哦!
1. 發(fā)展沿革
2013年,Pivotal團隊開始研發(fā)SpringBoot。
2014年4月,發(fā)布全新開源的輕量級框架
的第一個SpringBoot版本。
2. 輕量級框架
輕量級框架一般由struts,spring組成
,側重于減小開發(fā)的復雜度,相應的它的處理能力便有所減弱(如事務功能弱、不具備分布式處理能力),比較適用于開發(fā)中小型企業(yè)應用。
2.1 定義
輕量級框架是相對于重量級框架的一種設計模式:
輕量級框架不帶有侵略性API,對容器也沒有依賴性,易于進行配置,易于通用,啟動時間較短。這是輕量級框架相對于重量級框架的優(yōu)勢。
2.2 基本內(nèi)容
輕量級框架是相對于重量級框架而言的一種程序設計模式。與重量級框架相比,解決問題的側重點是不同的
。
采用輕量框架一方面因為盡可能的采用基于POJOs的方法進行開發(fā),使應用不依賴于任何容器,這可以提高開發(fā)調試效率;另一方面輕量級框架多數(shù)是開源項目,開源社區(qū)提供了良好的設計和許多快速構建工具以及大量現(xiàn)成可供參考的開源代碼,這有利于項目的快速開發(fā)。例如目前Tomcat+Spring+MyBatis已經(jīng)成為許多開發(fā)者開發(fā)J2EE中小型企業(yè)應用偏愛的一種架構選擇
。
2.3 產(chǎn)品特點
Spring就是一個輕量級框架,Spring的特點是
:
- 設計良好的分層結構。
- 以IOC為核心,提倡面向接口編程。
- 良好的架構設計。
- 可以代替EJB
- 實現(xiàn)了MVC
- 可以和其他框架良好的結合如:Hibernate ,struts等
2.4 發(fā)展方向
隨著可供選擇的框架層出不窮,開發(fā)者可以根據(jù)需要對應于企業(yè)應用三個層次的輕量級框架選擇
。 而作為重量級框架EJB框架則強調高可伸縮性,適合開發(fā)大型企業(yè)應用。在EJB體系結構中,一切與基礎結構服務相關的問題和底層分配問題都由應用程序容器或服務器來處理,且EJB容器通過減少數(shù)據(jù)庫訪問次數(shù)以及分布式處理等方式提供了專門的系統(tǒng)性能解決方案,能夠充分解決系統(tǒng)性能問題。 輕量級框架的產(chǎn)生并非是對重量級框架的否定,甚至在某種程度上可以說二者是互補的。輕量級框架在努力發(fā)展以開發(fā)具有更強大,功能更完備的企業(yè)應用;而新的EJB規(guī)范EJB3.0則在努力簡化J2EE的使用以使得EJB不僅僅是擅長處理大型企業(yè)系統(tǒng),也利用開發(fā)中小型系統(tǒng)
,這也是EJB輕量化的一種努力。對于大型企業(yè)應用以及將來可能涉及到能力擴展的中小型應用采用結合使用輕量級框架和重量級框架也不失為一種較好的解決方案。
3. 相關介紹
3.1 Spring框架
-
Spring框架是Java平臺上的一種開源應用框架
,提供具有控制反轉特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發(fā)提供了一系列的解決方案。 - 比如利用控制反轉的核心特性,并通過依賴注入實現(xiàn)控制反轉來實現(xiàn)管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數(shù)據(jù)訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。
Spring框架具有控制反轉
(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統(tǒng)一的配置和管理的方法。 - Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發(fā)者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,
SpringAOP框架基于代理模式
,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。 -
Spring框架的AOP框架僅提供基本的AOP特性
,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現(xiàn)。
3.2 核心機制
管理Bean
程序主要是通過Spring容器來訪問容器中的Bean,ApplicationContext是Spring容器最常用的接口
,該接口有如下兩個實現(xiàn)類:
- ClassPathXmlApplicationContext: 從類加載路徑下搜索配置文件,并根據(jù)配置文件來創(chuàng)建Spring容器。
- FileSystemXmlApplicationContext: 從文件系統(tǒng)的相對路徑或絕對路徑下去搜索配置文件,并根據(jù)配置文件來創(chuàng)建Spring容器。
public class BeanTest{
public static void main(String args[]) throws Exception{
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
Person p = ctx.getBean("person", Person.class);
p.say();
}
}
3.3 Eclipse使用Spring
在Eclipse等IDE工具中,用戶可以自建User Library,然后把Spring的Jar包都放入其中,當然也可以將Jar包直接放在項目的/WEB-INF/lib目錄下
,但是如果使用User Library,在項目發(fā)布時,需要將用戶庫所引用的Jar文件隨應用一起發(fā)布,就是將User Library所使用的Jar復制到/WEB-INF/lib目錄下,這是因為對于一個Web應用,Eclipse部署Web應用時不會將用戶庫的Jar文件復制到/WEB-INF/lib下,需要手動復制。
<!--通過設置可以將Bean排除在自動裝配之外-->
<bean id="" autowire-candidate="false"/>
<!--除此之外,還可以在beans元素中指定,支持模式字符串,如下所有以abc結尾的Bean都被排除在自動裝配之外-->
<beans default-autowire-candidates="*abc"/>
4. 特點
SpringBoot基于Spring4.0設計
,不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發(fā)過程。另外SpringBoot通過集成大量的框架使得依賴包的版本沖突
,以及引用的不穩(wěn)定性等問題得到了很好的解決。
SpringBoot所具備的特征有:
(1)可以創(chuàng)建獨立的Spring應用程序,并且基于其Maven或Gradle插件,可以創(chuàng)建可執(zhí)行的JARs和WARs
;
(2)內(nèi)嵌Tomcat或Jetty等Servlet容器;
(3)提供自動配置的“starter”項目對象模型
(POMS)以簡化Maven配置;
(4)盡可能自動配置Spring容器;
(5)提供準備好的特性,如指標、健康檢查和外部化配置;
(6)絕對沒有代碼生成,不需要XML配置。
5. 重要策略
SpringBoot框架中還有兩個非常重要的策略:開箱即用和約定優(yōu)于配置
。開箱即用,Outofbox,是指在開發(fā)過程中,通過在MAVEN項目的pom文件中添加相關依賴包,然后使用對應注解來代替繁瑣的XML配置文件以管理對象的生命周期。這個特點使得開發(fā)人員擺脫了復雜的配置工作以及依賴的管理工作,更加專注于業(yè)務邏輯。約定優(yōu)于配置,Convention over configuration
,是一種由SpringBoot本身來配置目標結構,由開發(fā)者在結構中添加信息的軟件設計范式。這一特點雖降低了部分靈活性,增加了BUG定位的復雜性,但減少了開發(fā)人員需要做出決定的數(shù)量,同時減少了大量的XML配置,并且可以將代碼編譯、測試和打包等工作自動化。
SpringBoot應用系統(tǒng)開發(fā)模板的基本架構設計從前端到后臺進行說明:前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它們都是用Java語言編寫的,渲染模板并輸出相應文本,使得界面的設計與應用的邏輯分離,同時前端開發(fā)還會使用到Bootstrap、AngularJS、JQuery等
;在瀏覽器的數(shù)據(jù)傳輸格式上采用Json,非xml,同時提供RESTfulAPI;SpringMVC框架用于數(shù)據(jù)到達服務器后處理請求
;到數(shù)據(jù)訪問層主要有Hibernate、MyBatis、JPA等持久層框架;數(shù)據(jù)庫常用MySQL;開發(fā)工具推薦IntelliJIDEA。
6. 安裝步驟
從最根本上來講,Spring Boot就是一些庫的集合,它能夠被任意項目的構建系統(tǒng)所使用
。簡便起見,該框架也提供了命令行界面,它可以用來運行和測試Boot應用??蚣艿陌l(fā)布版本,包括集成的CLI(命令行界面),可以在Spring倉庫中手動下載和安裝
。一種更為簡便的方式是使用Groovy環(huán)境管理器(Groovy enVironment Manager,GVM)
,它會處理Boot版本的安裝和管理。Boot及其CLI可以通過GVM的命令行gvm install springboot進行安裝。在OS X上安裝Boot可以使用Homebrew包管理器。為了完成安裝,首先要使用brew tap pivotal/tap切換到Pivotal倉庫中,然后執(zhí)行brew install springboot命令
。
要進行打包和分發(fā)的工程會依賴于像Maven或Gradle這樣的構建系統(tǒng)。為了簡化依賴圖,Boot的功能是模塊化的,通過導入Boot所謂的“starter”模塊,可以將許多的依賴添加到工程之中。為了更容易地管理依賴版本和使用默認配置,框架提供了一個parent POM
,工程可以繼承它。
7. 恒川贈書活動
恒川贈書活動第二期:
618,清華社 IT BOOK 多得圖書活動開始啦!活動時間為2023年6月7日至6月18日,清華社為您精選多款高分好書,涵蓋了C++、Java、Python、前端、后端、數(shù)據(jù)庫、算法與機器學習等多個IT開發(fā)領域,適合不同層次的讀者。全場5折,掃碼領券更有優(yōu)惠哦!
特惠購書查看詳細
抽獎活動:
-
《 Python高效編程——基于Rust語言 》
-
《 PyTorch深度學習簡明實戰(zhàn)》
-
《 圖解數(shù)據(jù)智能》
?本次活動一共贈書3本,評論區(qū)抽取3位小伙伴免費送出??!
?參與方式:關注博主、點贊、收藏、評論區(qū)評論 “ 人生苦短,我愛Python!”(切記要點贊+收藏,否則抽獎無效,每個人最多評論三次?。。。?/strong>
? 活動截止時間:2023-06-13 21:00:00
?通知方式:私信通知 (上述三本書里面選一本)文章來源:http://www.zghlxwxcb.cn/news/detail-478940.html
如果這份博客對大家有幫助,希望各位給恒川一個免費的點贊??作為鼓勵,并評論收藏一下?,謝謝大家!??!
制作不易,如果大家有什么疑問或給恒川的意見,歡迎評論區(qū)留言。文章來源地址http://www.zghlxwxcb.cn/news/detail-478940.html
到了這里,關于【Spring Boot】Spring Boot特點及重要策略,含安裝步驟詳細講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!