為什麼越來越多的開發者選擇使用Spring Boot? - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >

為什麼越來越多的開發者選擇使用Spring Boot?

發表時間:2016-10-16

發布人:葵宇科技

浏覽次數:25

一、Web應用開發背景

使用Java做Web應用開發已經有近20年的曆史了,從最初的Servlet1.0一步步演化到現在如(rú)此多的框架、庫以及整個(gè)生态系統。經過這麼長時間的發展,Java作為一個(gè)成熟的語言,也演化出了非常成熟的生态系統,這也是許多公司采用Java作為主流的語言進行服務器(qì)端開發的原因,也是為什麼Java一直保持着非常活躍的用戶群體的原因。

Java EE開發生态圖

最受Java開發者喜好的框架當屬Spring,Spring也成為了在Java EE開發中(zhōng)真正意義上的标準,但是随着新技術(shù)的發展,腳本語言大行其道的時代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐漸變得笨重起來,大量的XML文(wén)件存在與項目中(zhōng),繁瑣的配置,整合第三方框架的配置問(wèn)題,低下(xià)的開發效率和(hé)部署效率等等問(wèn)題。

這些問(wèn)題在不斷的社區反饋下(xià),Spring團隊也開發出了相應的框架:Spring Boot。Spring Boot可(kě)以說是至少(shǎo)近5年來Spring乃至整個(gè)Java社區最有影響力的項目之一,也被人看作是:Java EE開發的颠覆者!

二、Spring Boot解決的問(wèn)題

(1) Spring Boot使編碼變簡單

(2) Spring Boot使配置變簡單

(3) Spring Boot使部署變簡單

(4) Spring Boot使監控變簡單

(5) Spring的不足

三、Spring Boot的優點

官方地址:https://spring.io/projects/spring-boot

這裡寫圖片描述

Spring Boot繼承了Spring的優點,并新增了一些新功能和(hé)特性:

(1)SpringBoot是伴随着Spring4.0誕生的,一經推出,引起了巨大的反向;
(2)從字面理解,Boot是引導的意思,因此SpringBoot幫助開發者快速搭建Spring框架;
(3)SpringBoot幫助開發者快速啟動(dòng)一個(gè)Web容器(qì);
(4)SpringBoot繼承了原有Spring框架的優秀基因;
(5)SpringBoot簡化了使用Spring的過程;
(6)Spring Boot為我們帶來了腳本語言開發的效率,但是Spring Boot并沒有讓我們意外的新技術(shù),都是Java EE開發者常見的額技術(shù)。

四、Spring Boot主要特性

(1)遵循“習慣優于配置”的原則,使用Spring Boot隻需要很少(shǎo)的配置,大部分的時候我們直接使用默認的配置即可(kě);
(2)項目快速搭建,可(kě)以無需配置的自動(dòng)整合第三方的框架;
(3)可(kě)以完全不使用XML配置文(wén)件,隻需要自動(dòng)配置和(hé)Java Config;
(4)内嵌Servlet容器(qì),降低了對環境的要求,可(kě)以使用命令直接執行項目,應用可(kě)用jar包執行:java -jar;
(5)提供了starter POM, 能夠非常方便的進行包管理, 很大程度上減少(shǎo)了jar hell或者dependency hell;
(6)運行中(zhōng)應用狀态的監控;
(7)對主流開發框架的無配置集成;
(8)與雲計算的天然繼承;

五、Spring Boot的核心功能

(1)獨立運行的Spring項目

Spring Boot可(kě)以以jar包的形式進行獨立的運行,使用:java -jar xx.jar 就可(kě)以成功的運行項目,或者在應用項目的主程序中(zhōng)運行main函數即可(kě);

(2)内嵌的Servlet容器(qì)

内嵌容器(qì),使得我們可(kě)以執行運行項目的主程序main函數,實現項目的快速運行;

主程序代碼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依賴,下(xià)邊是創建一個(gè)web項目中(zhōng)自動(dòng)包含的依賴,使用的starter pom依賴為:spring-boot-starter-web

這裡寫圖片描述

Spring Boot官網還提供了很多的starter pom,請參考:

https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/reference/htmlsingle/#using-boot-starter

這裡寫圖片描述

(4)自動(dòng)配置Spring

Spring Boot會根據我們項目中(zhōng)類路(lù)徑的jar包/類,為jar包的類進行自動(dòng)配置Bean,這樣一來就大大的簡化了我們的配置。當然,這隻是Spring考慮到的大多數的使用場景,在一些特殊情況,我們還需要自定義自動(dòng)配置;

(5)應用監控

注意:以前的版本還支持這個(gè)功能,目前使用的2.0.4.RELEASE已經不再支持此功能!

Spring Boot提供了基于http、ssh、telnet對運行時的項目進行監控;這個(gè)聽起來是不是很炫酷!

示例:以SSH登錄為例

1、首先,添加starter pom依賴

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-remote-shell</artifactId>
</dependency>

2、運行項目,此時在控制台中(zhōng)會出現SSH訪問(wèn)的密碼:

這裡寫圖片描述

3、使用SecureCRT登錄到我們的程序,端口為2000,用戶為user:

這裡寫圖片描述

密碼就是剛才的shell access;

但是當我點擊連接的時候,出現錯誤:

這裡寫圖片描述

顯然是SecureCRT的版本不支持,所以就放棄了這個(gè),使用Git Bash:

ssh -p 2000 user@127.0.0.1

這裡寫圖片描述

剩下(xià)的事情,大家自己玩吧!

(6)無代碼生成和(hé)XML配置

Spring Boot神奇的地方不是借助于代碼生成來實現的,而是通(tōng)過條件注解的方式來實現的,這也是Spring 4.x的新特性。

六、Spring Boot的快速搭建案例

下(xià)邊使用的是IDEA快速搭建一個(gè)Spring Boot項目

(1)File----New—New Project

這裡寫圖片描述

(2)點擊Next填寫相應的信息

這裡寫圖片描述

(3)點擊Next,選擇Dependencies,這裡創建Web項目選擇-----Web:

這裡寫圖片描述

(4)點擊Next,設置項目名稱,這裡默認設置,點擊Next之後,項目等一下(xià)就創建好了

這裡寫圖片描述

找到應用程序的主函數,運行即可(kě):

這裡寫圖片描述

注意,在pom文(wén)件裡的java版本這個(gè)要和(hé)你(nǐ)的機子(zǐ)上一緻!我的是1.8,默認創建項目的時候為1.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 項目地址:

https://gitee.com/xuliugen/spring-boot-unofficial-guide/tree/master/spring-boot-hello-world

這裡寫圖片描述


【視頻福利】2T免費學習視頻,搜索或掃描上述二維碼關(guān)注微信公衆号:Java後端技術(shù)(ID: JavaITWork),和(hé)20萬人一起學Java!回複:1024,即可(kě)免費獲取!内含SSM、Spring全家桶、微服務、MySQL、MyCat、集群、分布式、中(zhōng)間件、Linux、網絡、多線程,Jenkins、Nexus、Docker、ELK等等免費學習視頻,持續更新!

相關(guān)案例查看更多