接下來我們所有的Spring代碼實(shí)例將會(huì)基于Spring Boot,因此我們先來了解一下Spring Boot這個(gè)大殺器。
Spring早期使用xml配置的方式來配置Spring Beans之間的關(guān)系,比如AOP和依賴注入的配置。隨著功能以及業(yè)務(wù)邏輯的日益復(fù)雜,應(yīng)用便會(huì)伴隨大量的XML配置文件以及復(fù)雜的Bean依賴關(guān)系。隨著Spring 3.0的發(fā)布,Spring團(tuán)隊(duì)逐漸開始擺脫XML配置文件,并且在開發(fā)過程中大量使用“約定優(yōu)先配置”(convention over configuration)的思想來擺脫Spring框架中各類紛繁復(fù)雜的配置。Spring就是在這樣一種背景下被抽象出來的一個(gè)在Spring之上的開發(fā)框架。
Spring Boot的設(shè)計(jì)目的是用來簡化新Spring應(yīng)用的創(chuàng)建以及開發(fā)過程。從它的名字可以看出,其作用在于創(chuàng)建和啟動(dòng)新的基于 Spring 框架的項(xiàng)目,它能夠幫助開發(fā)人員很容易的創(chuàng)建出基于Spring的獨(dú)立運(yùn)行和產(chǎn)品級(jí)別的應(yīng)用。它包含的特性如下:
應(yīng)用獨(dú)立運(yùn)行,對于Web應(yīng)用直接嵌入應(yīng)用服務(wù)器(Tomcat or Jetty)根據(jù)項(xiàng)目的依賴(Maven or Gradle中定義的依賴)自動(dòng)配置Spring框架的特性提供生產(chǎn)環(huán)境中的監(jiān)控功能——性能、應(yīng)用狀態(tài)信息等不會(huì)生成繁瑣的java代碼以及XML配置文件Spring Boot并不是用來替代Spring的解決方案,而是和Spring框架緊密結(jié)合用于提升Spring開發(fā)者體驗(yàn)的工具。Spring Boot應(yīng)用通常只需要非常少量的配置代碼,而且有內(nèi)嵌的Web服務(wù)器,讓開發(fā)者能夠更加專注于業(yè)務(wù)邏輯。在后面的開發(fā)過程中,我們能夠逐漸感受到Spring Boot這些優(yōu)秀特性給我們帶來的好處。
接下來我們通過創(chuàng)建一個(gè)簡單的Spring Boot項(xiàng)目來建立對初步的印象。一開始可能會(huì)遇到一些不太理解的地方,沒關(guān)系,我們會(huì)在學(xué)習(xí)過程中我們會(huì)逐一搞定。
我們通過Maven來創(chuàng)建項(xiàng)目,【File】->【New】->【Others...】;彈出的對話框中包含了一系列的項(xiàng)目類型,我們選擇Maven Project
;一個(gè)技巧是可以在
選中后出現(xiàn)了新的對話框,勾選Create a simple project (skip archetype selection),點(diǎn)擊type filter text
中輸入Maven
進(jìn)行搜索過濾,這樣很快可以找到Maven Project
。Next >
后,按照下圖輸入內(nèi)容:輸入完成后點(diǎn)擊
Finish
,第一個(gè)項(xiàng)目就創(chuàng)建成功了。項(xiàng)目創(chuàng)建成功后,在Eclipse IDE左邊的
Project Explorer
中會(huì)出現(xiàn)我們剛剛創(chuàng)建的項(xiàng)目,其中有一個(gè)pom.xml
文件,我們先對它進(jìn)行修改,增加一個(gè)依賴,內(nèi)容變?yōu)椋?/p><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.3.RELEASE</version> </parent> <groupId>com.tianmaying</groupId> <artifactId>website</artifactId> <version>0.0.1-SNAPSHOT</version> <name>tmy-website</name> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies></project>
編輯完成后保存(可以使用
Ctrl+S
快捷鍵)。編寫Web應(yīng)用程序
然后我們在
src/main/java
目錄下新建一個(gè)Java文件:
在這里我們需要填寫
Package
,Name
兩個(gè)字段就可以了,然后編輯這個(gè)java文件:package com.tianmaying.webdev;import org.springframework.boot.Springapplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@SpringBootApplication@Controllerpublic class Application { @RequestMapping("/") @ResponseBody public String index() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
運(yùn)行Web應(yīng)用程序
經(jīng)過以上步驟,一個(gè)簡單的Web應(yīng)用就已經(jīng)開發(fā)完成了。接下來我們要將它運(yùn)行起來:
在Project Explorer
中找到Application.java
右鍵彈出菜單Run as...
,選中Java Application
接下來就能看到在IDE下方的
Console
視圖中出現(xiàn)運(yùn)行信息,當(dāng)你看到Started Application in 2.214 seconds (JVM running for 2.466)
信息后,說明應(yīng)用服務(wù)器啟動(dòng)成功。接下來打開瀏覽器,在地址欄中輸入
[http://localhost:8080](http://localhost:8080)
,如果能夠看到Hello World!
出現(xiàn)在瀏覽器中,那說明環(huán)境配置大功告成!Spring Boot初探
Maven的POM文件之間可以有繼承關(guān)系,下面這段代碼就表示我們的POM文件繼承自groupId為
org.springframework.boot
,artifactId為spring-boot-starter-parent
,version為1.2.3.RELEASE
的POM文件。<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.3.RELEASE</version> </parent>
這個(gè)文件是Spring Boot提供給我們的,里面定義了一些屬性,比如Java編譯級(jí)別,UTF-8編碼,以及測試框架和一些插件的配置。這里我們只管引入就好。注意這個(gè)Parent POM中定義的Java編譯級(jí)別為1.6,如果需要改變?yōu)?.8,只需要重新定義
<java.version>
屬性即可覆蓋,類似于類的方法重載。<properties> <java.version>1.8</java.version></properties>
在Maven依賴中引入了
spring-boot-starter-web
,它包含了Spring Boot預(yù)定義的一些Web開發(fā)的常用依賴:spring-web
,spring-webmvc
: Spring Web Mvc框架tomcat-embed-*
: 內(nèi)嵌Tomcat容器jackson
:處理json數(shù)據(jù)spring-*
:Spring框架spring-boot-autoconfigure
: Spring Boot提供的自動(dòng)配置功能Java代碼中沒有任何配置,和傳統(tǒng)的Spring應(yīng)用相比,多了一個(gè)
@SpringBootApplication
,這是是Spring Boot提供的注解,這個(gè)注解會(huì)告訴Spring去掃描類路徑,初始化Spring Context以及啟動(dòng)內(nèi)嵌Tomcat容器等一系列操作。我們沒有看到一行配置代碼,也沒有web.xml
?;赟pring Boot的應(yīng)用在大多數(shù)情況下都不需要我們?nèi)ワ@式地聲明各類配置,而是將最常用的默認(rèn)配置作為約定,在不聲明的情況下也能適應(yīng)大多數(shù)的開發(fā)場景。小節(jié)
即使我們還沒有使用Spring的驚訝,從這個(gè)簡單的Spring Boot項(xiàng)目我們也可以發(fā)現(xiàn)開發(fā)上相比傳統(tǒng)的jsp和Servlet開發(fā)已經(jīng)具有了一些特點(diǎn),比如:
不需要再專門配置Web服務(wù)器,Web服務(wù)器已經(jīng)被內(nèi)嵌在應(yīng)用中了,應(yīng)用開發(fā)環(huán)境的建立更加簡單了,從現(xiàn)在開始讓我們可以和之前安裝和配置過的Tomcat說再見了。
Spring Boot提供的依賴,比如
spring-boot-starter-web
,能夠幫助我們引入大部分Web開發(fā)中需要用到的依賴,極大的簡化了我們自己配置依賴的工作。我們已經(jīng)了解了創(chuàng)建Spring Boot應(yīng)用的基本步驟,接下來我們要做的第一步就是講博客應(yīng)用通過Spring Boot來重寫。
參考
Eclipse IDE for JavaEE DevelopersEclipse Java 8 SupportMaven實(shí)戰(zhàn)Spring Boot
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注