《7天學會spring cloud》第一天,熟悉spring boot,並使用spring boot創建一個應用。
Spring Boot是Spring團隊推出的新框架,它所使用的核心技術還是Spring框架,主要是Spring 4.x,所以如果熟悉spring 4的人,能夠更快的接受和學會這個框架。Spring boot可以看做是在spring框架基礎上再包了一層,這一層包含方便開發者進行配置管理和快速開發的模塊,以及提供了一些開箱即用的工具,比如監控等。
Spring Boot官方文檔有中文翻譯版:
https://github.com/qibaoguang/Spring-Boot-Reference-Guide
要實現一個spring boot開發環境和傳統的應用沒有區別,這里用的是:
IDE:myeclipse 10
JDK:jdk1.7
WINDOWS:mvn 3
在桌面windows環境里需要單獨安裝方便我們使用命令行進行打包和操作。Eclipse環境里也需要安裝mvn插件,當然如果使用的是myeclipse,那么自帶的mvn環境就足夠了。以下是建立spring boot helloworld應用的步驟。注意這是一個web應用,使用了嵌入式的tomcat。
1) 首選建立一個最簡單的maven工程,如下圖:
這個應用只有一個類,編寫代碼如下:
package cloud.simple.hello; import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @Controller @SpringBootApplication public class SampleController { @ResponseBody @RequestMapping(value = "/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } }
@SpringBootApplication相當於@Configuration、@EnableAutoConfiguration和 @ComponentScan,你也可以同時使用這3個注解。其中@Configuration、@ComponentScan是spring框架的語法,在spring 3.x就有了,用於代碼方式創建配置信息和掃描包。@EnableAutoConfiguration是spring boot語法,表示將使用自動配置。你如果下載了spring boot源碼,就會看到spring boot實現了很多starter應用,這些starter就是一些配置信息(有點類似於docker,一組環境一種應用的概念),spring boot看到引入的starter包,就可以計算如果自動配置你的應用。
2) 配置pom.xml
這個應用不需要配置文件,寫完class后就可以直接配置pom.xml文件了,當然先配置pom.xml也一樣。Pom文件配置如下:
<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> <!-- spring boot基本環境 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.1.RELEASE</version> </parent> <groupId>spring.boot</groupId> <artifactId>cloud-simple-helloword</artifactId> <version>0.0.1</version> <packaging>jar</packaging> <name>cloud-simple-helloword</name> <dependencies> <!--web應用基本環境配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
pom文件配置完,你就可以運行應用了,點擊F11,或者在SampleController類右鍵“Run Java Application”就可以看到應用啟動並運行了。
此時在瀏覽器輸入http://localhost:8080/,你會看到helloworld字樣,這是一個web應用,使用了嵌入式的tomcat。
在pom配置中我們僅僅使用了spring-boot-starter-web依賴,spring boot會根據此依賴下載相關jar包並初始化基本的運行環境,比如說綁定端口8080等。
spring boot封裝所有配置信息為鍵值類型,你想改變默認配置,只需要向應用傳入這個鍵值對就可以,比如我們想改變綁定端口為8081,那么你在main方法里傳入“—server.port=8081”即可,或者干脆使用:
SpringApplication.run(SampleController.class, "--server.port=8081");
3) 部署spring boot應用
要部署運行spring boot應用,首選要打包spring boot應用,你在pom文件中看到的spring-boot-maven-plugin插件就是打包spring boot應用的。
進入工程目錄運行mvn package,如:
D:\cloud-simple-helloword>mvn package
打包過后就可以進入target目錄使用java原生命令執行這個應用了。
D:\cloud-simple-helloword\target>java -jar cloud-simple-helloword-0.0.1.jar --server.port=8081
如此,你就看到一個基於jar包的web應用啟動了。
Spring boot提供的一些開箱即用的應用非常容易使用,比如監控,你只需要在pom文件中引入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
引入之后,spring boot是默認開啟監控的,運行應用你可以在瀏覽器中輸入:
就可以看到默認的監控信息了:
{"status":"UP","diskSpace":{"status":"UP","total":161067397120,"free":91618398208,"threshold":10485760}}
信息包括程序執行狀態以及基本的磁盤信息。