????????????????????????????????Spring Boot 之 HelloWorld詳解
主目錄:http://www.spring4all.com/article/246
轉(zhuǎn)載于:http://www.spring4all.com/article/266
Spring Boot(英文中是“引導”的意思)烙荷,是用來簡化Spring應用的搭建到開發(fā)的過程本今。應用開箱即用基括,只要通過 “just run”(可能是 java -jar 或 tomcat 或 maven插件run 或 shell腳本)通危,就可以啟動項目。二者体啰,Spring Boot 只要很少的Spring配置文件(例如那些xml囱修,property)吠卷。 因為“習慣優(yōu)先于配置”的原則,使得Spring Boot在快速開發(fā)應用和微服務架構實踐中得到廣泛應用岛心。???Javaer裝好JDK環(huán)境和Maven工具就可以開始學習Boot了;
HelloWorld實戰(zhàn)詳解
首先得有個maven基礎項目来破,可以直接使用Maven骨架工程生成Maven骨架Web項目,即man?archetype:generate命令:mvn archetype:generate -DgroupId=springboot -DartifactId=springboot-helloworld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
pom.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<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>
? ? <groupId>springboot</groupId>
? ? <artifactId>springboot-helloworld</artifactId>
? ? <version>0.0.1-SNAPSHOT</version>
? ? <name>springboot-helloworld :: HelloWorld Demo</name>
? ? <!-- Spring Boot 啟動父依賴 -->
? ? <parent>
? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? <artifactId>spring-boot-starter-parent</artifactId>
? ? ? ? <version>1.3.3.RELEASE</version>
? ? </parent>
? ? <dependencies>
? ? ? ? <!-- Spring Boot web依賴 -->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? <artifactId>spring-boot-starter-web</artifactId>
? ? ? ? </dependency>
? ? ? ? <!-- Junit -->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>junit</groupId>
? ? ? ? ? ? <artifactId>junit</artifactId>
? ? ? ? ? ? <version>4.12</version>
? ? ? ? </dependency>
? ? </dependencies>
</project>
只要加入一個 Spring Boot 啟動父依賴即可;
Controller層
Spring Boot HelloWorld案例
@RestController
public class HelloWorldController {
? ? @RequestMapping("/")
? ? public String sayHello() {
? ? ? ? return "Hello,World!";
? ? }
}
@RestController和@RequestMapping注解是來自SpringMVC的注解忘古,它們不是SpringBoot的特定部分讳癌。 1. @RestController:提供實現(xiàn)了REST API,可以服務JSON,XML或者其他存皂。這里是以String的形式渲染出結(jié)果晌坤。 2. @RequestMapping:提供路由信息,"/“路徑的HTTP Request都會被映射到sayHello方法進行處理旦袋。 具體參考骤菠,世界上最好的文檔來源自官方的《Spring Framework Document》
啟動應用類
和第一段描述一樣,開箱即用疤孕。如下面Application類:
Spring Boot應用啟動類
@SpringBootApplication
public class Application {
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(Application.class,args);
? ? }
}
@SpringBootApplication:Spring Boot 應用的標識 2. Application很簡單商乎,一個main函數(shù)作為主入口。SpringApplication引導應用祭阀,并將Application本身作為參數(shù)傳遞給run方法鹉戚。具體run方法會啟動嵌入式的Tomcat并初始化Spring環(huán)境及其各Spring組件鲜戒。
Controller層測試類?
一個好的程序,不能缺少好的UT抹凳。針對HelloWorldController的UT如下:
Spring Boot HelloWorldController 測試
public class HelloWorldControllerTest {
? ? @Test
? ? public void testSayHello() {
? ? ? ? assertEquals("Hello,World!",new HelloWorldController().sayHello());
? ? }
}
運行
Just Run的宗旨,運行很簡單,直接右鍵Run運行Application類,同樣你也可以Debug Run;可以在控制臺中看到:
Tomcat started on port(s): 8080 (http)
Started Application in 5.986 seconds (JVM running for 7.398)
然后訪問?http://localhost:8080/?,即可在頁面中看到Spring Boot對你 say hello:
輸出結(jié)果:Hello,World遏餐!