1. 程式人生 > >Spring Boot 基礎篇之 HelloWorld

Spring Boot 基礎篇之 HelloWorld

Spring Boot 設計理念

應用開箱即用,只要通過 “just run”(可能是 java -jar 或 tomcat 或 maven外掛run 或 shell指令碼),就可以啟動專案。二者,Spring Boot 只要很少的Spring配置檔案(例如那些xml,property)。

因為“習慣優先於配置”的原則,使得Spring Boot在快速開發應用和微服務架構實踐中得到廣泛應用。

建立專案

專案結構

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>com.lol</groupId> <artifactId>lol</artifactId> <version>0.0.1-SNAPSHOT</version
>
<packaging>jar</packaging> <name>lol</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId
>
<version>1.5.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

只要加入一個 Spring Boot 啟動父依賴即可。

controller 層程式碼

HelloWorldController.java 程式碼如下:

/**
 * 描述:Spring Boot  HelloWorld  案例
 * 2017年4月25日 下午7:48:24
 */
@RestController
public class HelloWorldController {

    @RequestMapping("/hello")
    public String sayHello() {
        return "Hello,World!";
    }
}

@RestController 註解

官方文件:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.

意思是:
@RestController註解相當於@ResponseBody + @Controller合在一起的作用。

  • 如果只是使用@RestController註解Controller,則Controller中的方法無法返回jsp頁面,配置的檢視解析器InternalResourceViewResolver不起作用,返回的內容就是Return 裡的內容。
    例如:本來應該到success.jsp頁面的,則其顯示success.

  • 如果需要返回到指定頁面,則需要用 @Controller配合檢視解析器InternalResourceViewResolver才行。

  • 如果需要返回JSON,XML或自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody註解。

@RequestMapping 註解是一個用來處理請求地址對映的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。

啟動類

@SpringBootApplication
public class LolApplication {
    public static void main(String[] args) {
        SpringApplication.run(LolApplication.class, args);
    }
}
  • @SpringBootApplication:Spring Boot 應用的標識

  • LolApplication,一個main函式作為主入口。SpringApplication引導應用,並將LolApplication本身作為引數傳遞給run方法。具體run方法會啟動嵌入式的Tomcat並初始化Spring環境及其各Spring元件。

執行

Run As —> Java Application 執行專案可以看到控制檯輸出

2017-04-26 11:08:13.003  INFO 31220 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-04-26 11:08:13.007  INFO 31220 --- [           main] com.lol.LolApplication                   : Started LolApplication in 1.881 seconds (JVM running for 2.061)
Hello,World!