爲何愈來愈多的開發者選擇使用Spring Boot?

1、Web應用開發背景

使用Java作Web應用開發已經有近20年的歷史了,從最初的Servlet1.0一步步演化到如今如此多的框架、庫以及整個生態系統。通過這麼長時間的發展,Java做爲一個成熟的語言,也演化出了很是成熟的生態系統,這也是許多公司採用Java做爲主流的語言進行服務器端開發的緣由,也是爲何Java一直保持着很是活躍的用戶羣體的緣由。html

最受Java開發者喜愛的框架當屬Spring,Spring也成爲了在Java EE開發中真正意義上的標準,可是隨着新技術的發展,腳本語言大行其道的時代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐漸變得笨重起來,大量的XML文件存在與項目中,繁瑣的配置,整合第三方框架的配置問題,低下的開發效率和部署效率等等問題。java

這些問題在不斷的社區反饋下,Spring團隊也開發出了相應的框架:Spring Boot。Spring Boot能夠說是至少近5年來Spring乃至整個Java社區最有影響力的項目之一,也被人看做是:Java EE開發的顛覆者!web

2、Spring Boot解決的問題

(1) Spring Boot使編碼變簡單spring

(2) Spring Boot使配置變簡單shell

(3) Spring Boot使部署變簡單springboot

(4) Spring Boot使監控變簡單bash

(5) Spring的不足服務器

3、Spring Boot的優勢

官方地址:spring.io/projects/sp…框架

Spring Boot繼承了Spring的優勢,並新增了一些新功能和特性:ssh

  • SpringBoot是伴隨着Spring4.0誕生的,一經推出,引發了巨大的反向;
  • 從字面理解,Boot是引導的意思,所以SpringBoot幫助開發者快速搭建Spring框架;
  • SpringBoot幫助開發者快速啓動一個Web容器;
  • SpringBoot繼承了原有Spring框架的優秀基因;
  • SpringBoot簡化了使用Spring的過程;
  • Spring Boot爲咱們帶來了腳本語言開發的效率,可是Spring Boot並無讓咱們意外的新技術,都是Java EE開發者常見的額技術。

4、Spring Boot主要特性

(1)遵循「習慣優於配置」的原則,使用Spring Boot只須要不多的配置,大部分的時候咱們直接使用默認的配置便可; (2)項目快速搭建,能夠無需配置的自動整合第三方的框架; (3)能夠徹底不使用XML配置文件,只須要自動配置和Java Config; (4)內嵌Servlet容器,下降了對環境的要求,可使用命令直接執行項目,應用可用jar包執行:java -jar; (5)提供了starter POM, 可以很是方便的進行包管理, 很大程度上減小了jar hell或者dependency hell; (6)運行中應用狀態的監控; (7)對主流開發框架的無配置集成; (8)與雲計算的自然繼承;

5、Spring Boot的核心功能

(1)獨立運行的Spring項目

Spring Boot能夠以jar包的形式進行獨立的運行,使用:java -jar xx.jar 就能夠成功的運行項目,或者在應用項目的主程序中運行main函數便可;

(2)內嵌的Servlet容器

內嵌容器,使得咱們能夠執行運行項目的主程序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依賴,下邊是建立一個web項目中自動包含的依賴,使用的starter pom依賴爲:spring-boot-starter-web

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

docs.spring.io/spring-boot…

(4)自動配置Spring

Spring Boot會根據咱們項目中類路徑的jar包/類,爲jar包的類進行自動配置Bean,這樣一來就大大的簡化了咱們的配置。固然,這只是Spring考慮到的大多數的使用場景,在一些特殊狀況,咱們還須要自定義自動配置;

(5)應用監控

注意:之前的版本還支持這個功能,目前使用的2.0.4.RELEASE已經再也不支持此功能!

Spring Boot提供了基於http、ssh、telnet對運行時的項目進行監控;這個聽起來是否是很炫酷!

示例:以SSH登陸爲例

一、首先,添加starter pom依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-remote-shell</artifactId>
</dependency>
複製代碼

二、運行項目,此時在控制檯中會出現SSH訪問的密碼:

三、使用SecureCRT登陸到咱們的程序,端口爲2000,用戶爲user:

密碼就是剛纔的shell access;

可是當我點擊鏈接的時候,出現錯誤:

顯然是SecureCRT的版本不支持,因此就放棄了這個,使用Git Bash:

ssh -p 2000 user@127.0.0.1
複製代碼

剩下的事情,你們本身玩吧!

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

Spring Boot神奇的地方不是藉助於代碼生成來實現的,而是經過條件註解的方式來實現的,這也是Spring 4.x的新特性。

6、Spring Boot的快速搭建案例

下邊使用的是IDEA快速搭建一個Spring Boot項目

(1)File—-New—New Project

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

(3)點擊Next,選擇Dependencies,這裏建立Web項目選擇—–Web:

(4)點擊Next,設置項目名稱,這裏默認設置,點擊Next以後,項目等一下就建立好了

找到應用程序的主函數,運行便可:

注意,在pom文件裏的java版本這個要和你的機子上一致!個人是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>
複製代碼

轉載自博客徐劉根:blog.csdn.net/xlgen157387…

相關文章
相關標籤/搜索