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