知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
為什么越來越多的開發(fā)者選擇使用Spring Boot?
發(fā)表時(shí)間:2016-10-16
發(fā)布人:葵宇科技
瀏覽次數(shù):45
一、Web應(yīng)用開發(fā)背景
使用Java做Web應(yīng)用開發(fā)已經(jīng)有近20年的歷史了,從最初的Servlet1.0一步步演化到現(xiàn)在如此多的框架、庫以及整個(gè)生態(tài)系統(tǒng)。經(jīng)過這么長時(shí)間的發(fā)展,Java作為一個(gè)成熟的語言,也演化出了非常成熟的生態(tài)系統(tǒng),這也是許多公司采用Java作為主流的語言進(jìn)行服務(wù)器端開發(fā)的原因,也是為什么Java一直保持著非?;钴S的用戶群體的原因。
最受Java開發(fā)者喜好的框架當(dāng)屬Spring,Spring也成為了在Java EE開發(fā)中真正意義上的標(biāo)準(zhǔn),但是隨著新技術(shù)的發(fā)展,腳本語言大行其道的時(shí)代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐漸變得笨重起來,大量的XML文件存在與項(xiàng)目中,繁瑣的配置,整合第三方框架的配置問題,低下的開發(fā)效率和部署效率等等問題。
這些問題在不斷的社區(qū)反饋下,Spring團(tuán)隊(duì)也開發(fā)出了相應(yīng)的框架:Spring Boot。Spring Boot可以說是至少近5年來Spring乃至整個(gè)Java社區(qū)最有影響力的項(xiàng)目之一,也被人看作是:Java EE開發(fā)的顛覆者!
二、Spring Boot解決的問題
(1) Spring Boot使編碼變簡單
(2) Spring Boot使配置變簡單
(3) Spring Boot使部署變簡單
(4) Spring Boot使監(jiān)控變簡單
(5) Spring的不足
三、Spring Boot的優(yōu)點(diǎn)
官方地址:https://spring.io/projects/spring-boot
Spring Boot繼承了Spring的優(yōu)點(diǎn),并新增了一些新功能和特性:
(1)SpringBoot是伴隨著Spring4.0誕生的,一經(jīng)推出,引起了巨大的反向;
(2)從字面理解,Boot是引導(dǎo)的意思,因此SpringBoot幫助開發(fā)者快速搭建Spring框架;
(3)SpringBoot幫助開發(fā)者快速啟動(dòng)一個(gè)Web容器;
(4)SpringBoot繼承了原有Spring框架的優(yōu)秀基因;
(5)SpringBoot簡化了使用Spring的過程;
(6)Spring Boot為我們帶來了腳本語言開發(fā)的效率,但是Spring Boot并沒有讓我們意外的新技術(shù),都是Java EE開發(fā)者常見的額技術(shù)。
四、Spring Boot主要特性
(1)遵循“習(xí)慣優(yōu)于配置”的原則,使用Spring Boot只需要很少的配置,大部分的時(shí)候我們直接使用默認(rèn)的配置即可;
(2)項(xiàng)目快速搭建,可以無需配置的自動(dòng)整合第三方的框架;
(3)可以完全不使用XML配置文件,只需要自動(dòng)配置和Java Config;
(4)內(nèi)嵌Servlet容器,降低了對(duì)環(huán)境的要求,可以使用命令直接執(zhí)行項(xiàng)目,應(yīng)用可用jar包執(zhí)行:java -jar;
(5)提供了starter POM, 能夠非常方便的進(jìn)行包管理, 很大程度上減少了jar hell或者dependency hell;
(6)運(yùn)行中應(yīng)用狀態(tài)的監(jiān)控;
(7)對(duì)主流開發(fā)框架的無配置集成;
(8)與云計(jì)算的天然繼承;
五、Spring Boot的核心功能
(1)獨(dú)立運(yùn)行的Spring項(xiàng)目
Spring Boot可以以jar包的形式進(jìn)行獨(dú)立的運(yùn)行,使用:java -jar xx.jar
就可以成功的運(yùn)行項(xiàng)目,或者在應(yīng)用項(xiàng)目的主程序中運(yùn)行main函數(shù)即可;
(2)內(nèi)嵌的Servlet容器
內(nèi)嵌容器,使得我們可以執(zhí)行運(yùn)行項(xiàng)目的主程序main函數(shù),實(shí)現(xiàn)項(xiàng)目的快速運(yùn)行;
主程序代碼SpringbootDemoApplication.java
package com.springboot.demo.helloworld;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootHelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootHelloWorldApplication.class, args);
}
}
(3)提供starter簡化Manen配置
Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴,下邊是創(chuàng)建一個(gè)web項(xiàng)目中自動(dòng)包含的依賴,使用的starter pom依賴為:spring-boot-starter-web
Spring Boot官網(wǎng)還提供了很多的starter pom,請(qǐng)參考:
https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/reference/htmlsingle/#using-boot-starter
(4)自動(dòng)配置Spring
Spring Boot會(huì)根據(jù)我們項(xiàng)目中類路徑的jar包/類,為jar包的類進(jìn)行自動(dòng)配置Bean,這樣一來就大大的簡化了我們的配置。當(dāng)然,這只是Spring考慮到的大多數(shù)的使用場景,在一些特殊情況,我們還需要自定義自動(dòng)配置;
(5)應(yīng)用監(jiān)控
注意:以前的版本還支持這個(gè)功能,目前使用的2.0.4.RELEASE已經(jīng)不再支持此功能!
Spring Boot提供了基于http、ssh、telnet對(duì)運(yùn)行時(shí)的項(xiàng)目進(jìn)行監(jiān)控;這個(gè)聽起來是不是很炫酷!
示例:以SSH登錄為例
1、首先,添加starter pom依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-remote-shell</artifactId>
</dependency>
2、運(yùn)行項(xiàng)目,此時(shí)在控制臺(tái)中會(huì)出現(xiàn)SSH訪問的密碼:
3、使用SecureCRT登錄到我們的程序,端口為2000,用戶為user:
密碼就是剛才的shell access;
但是當(dāng)我點(diǎn)擊連接的時(shí)候,出現(xiàn)錯(cuò)誤:
顯然是SecureCRT的版本不支持,所以就放棄了這個(gè),使用Git Bash:
ssh -p 2000 user@127.0.0.1
剩下的事情,大家自己玩吧!
(6)無代碼生成和XML配置
Spring Boot神奇的地方不是借助于代碼生成來實(shí)現(xiàn)的,而是通過條件注解的方式來實(shí)現(xiàn)的,這也是Spring 4.x的新特性。
六、Spring Boot的快速搭建案例
下邊使用的是IDEA快速搭建一個(gè)Spring Boot項(xiàng)目
(1)File----New—New Project
(2)點(diǎn)擊Next填寫相應(yīng)的信息
(3)點(diǎn)擊Next,選擇Dependencies,這里創(chuàng)建Web項(xiàng)目選擇-----Web:
(4)點(diǎn)擊Next,設(shè)置項(xiàng)目名稱,這里默認(rèn)設(shè)置,點(diǎn)擊Next之后,項(xiàng)目等一下就創(chuàng)建好了
找到應(yīng)用程序的主函數(shù),運(yùn)行即可:
注意,在pom文件里的java版本這個(gè)要和你的機(jī)子上一致!我的是1.8,默認(rèn)創(chuàng)建項(xiàng)目的時(shí)候?yàn)?.8:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
七、案例代碼
GitOS 項(xiàng)目地址:
https://gitee.com/xuliugen/spring-boot-unofficial-guide/tree/master/spring-boot-hello-world
【視頻福利】2T免費(fèi)學(xué)習(xí)視頻,搜索或掃描上述二維碼關(guān)注微信公眾號(hào):Java后端技術(shù)(ID: JavaITWork),和20萬人一起學(xué)Java!回復(fù):1024,即可免費(fèi)獲取!內(nèi)含SSM、Spring全家桶、微服務(wù)、MySQL、MyCat、集群、分布式、中間件、Linux、網(wǎng)絡(luò)、多線程,Jenkins、Nexus、Docker、ELK等等免費(fèi)學(xué)習(xí)視頻,持續(xù)更新!
相關(guān)案例查看更多
相關(guān)閱讀
- 報(bào)廢車拆解軟件
- 制作一個(gè)小程序
- 云南網(wǎng)站建設(shè)專業(yè)品牌
- 海報(bào)插件
- 云南網(wǎng)絡(luò)營銷
- 云南省建設(shè)廳官方網(wǎng)站
- 搜索排名
- 開發(fā)框架
- 云南網(wǎng)絡(luò)推廣
- 報(bào)廢車拆解管理系統(tǒng)
- 云南小程序開發(fā)公司推薦
- 云南etc微信小程序
- 網(wǎng)站建設(shè)高手
- 云南網(wǎng)站建設(shè)服務(wù)
- 云南網(wǎng)站維護(hù)
- 網(wǎng)站建設(shè)價(jià)格
- 云南電商網(wǎng)站建設(shè)
- 云南小程序公司
- web
- 報(bào)廢車拆解回收管理系統(tǒng)
- 昆明軟件定制
- 微信小程序開發(fā)入門課程
- 昆明軟件公司
- 小程序被騙退款成功
- 云南網(wǎng)站建設(shè)外包
- 網(wǎng)站建設(shè)
- 百度小程序開發(fā)公司
- 云南etc小程序
- 云南網(wǎng)站建設(shè)哪家強(qiáng)
- 云南網(wǎng)站建設(shè)選