天天看點

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

PS:任何時候隻要決定開始都不算晚。

Spring Boot 是用來簡化 Spring 應用程式的開發的,可以減少不必要的配置過程,其主要特性包括 Spring Boot Starter、自動配置、指令行接口、Actuator 等,作為 Android 開發者對 Spring Boot 的學習将以會使用為主,所有文章會基于對應的案例,本篇文章将從以下幾個方面介紹如何使用 Spring Boot 開發一個接口:

  1. Spring Boot項目初始化
  2. 使用IDEA建立Spring Boot項目
  3. Spring Boot項目目錄結構
  4. 簡述POM檔案
  5. 實作一個簡單的接口
  6. 接口測試

Spring Boot項目初始化

建立 Spring 應用程式都是從 Spring Initializr 開始,可以快速的選擇項目的依賴項,可以通路

https://start.spring.io/

來完成 Spring 應用程式的建立,如下圖所示:

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

通過配置可生成對應配置資訊的項目源碼包,使用 IntelliJ IDEA 或其他 IDE 打開即可。

使用IDEA建立Spring Boot項目

最常見的方式肯定是使用 IDE 來進行 Spring 相關項目的建立,這裡選擇 IntelliJ IDEA 來建立 Spring Boot 項目。

第一步:選擇 File->New->Project,如下:

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

第二步:選擇 Spring Initializr,Project SDK 至少為 JDK 1.8,然後選擇 Next:

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

第三步:根據項目配置項目資訊,然後選擇 Next:

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

第四步:選擇 Web->Spring Web 以及 Spring Boot 的版本,這一步實際上就是為該項目添加了支援 Web 開發的依賴,之後會在 pom 檔案中看到相關依賴,然後選擇 Next:

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

第五步:選擇 Finish 完成項目的建立:

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

Spring Boot項目目錄結構

Spring Boot 項目的主要目錄結構如下:

│ pom.xml └─src     ├─main     │  ├─java     │  │  └─com     │  │      └─manu     │  │          └─hello     │  │                  SpringBootHelloWorldApplication.java     │  │     │  └─resources     │      │ application.properties     │      │     │      ├─static     │      └─templates     └─test         └─java             └─com                 └─manu                     └─hello                             SpringBootHelloWorldApplicationTests.java

主要目錄與檔案介紹如下:

  • pom.xml:項目基于 mavan 的依賴配置檔案,如果項目基于 gradle,則有對應的 gradle 檔案;
  • src/main/java:項目源代碼目錄;
  • src/main/resources:資源檔案目錄;
  • src/test:測試檔案目錄;
  • application.properties:配置檔案,也可以使用 yml 檔案進行配置;
  • static:靜态資源檔案目錄,如 html、css、js 等;
  • templates:模闆檔案目錄,如 Thymeleaf 等;
  • SpringBootHelloWorldApplication:項目啟動類。

簡述POM檔案

POM 是項目對象模型(Project Object Model)的簡稱,maven 項目通過 xml 來進行項目配置,pom.xml 就是用來配置 maven 項目的,pom.xml 檔案類似于 Android 開發中的 build.gradle 檔案,當然 Spring Boot 項目也可以使用 gradle 來進行建構,主要用來管理項目依賴、配置項目資訊等,來看一下 Spring Web 項目的 pom 檔案内容:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0modelVersion><parent><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-parentartifactId><version>2.2.5.RELEASEversion><relativePath /> parent><groupId>com.manugroupId><artifactId>spring-boot-hello-worldartifactId><version>0.0.1-SNAPSHOTversion><packaging>jarpackaging><name>spring-boot-hello-worldname><description>Spring Boot sample for Hello World!description><properties><java.version>1.8java.version>properties><dependencies><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-webartifactId>dependency><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-testartifactId><scope>testscope>dependency>dependencies><build><plugins><plugin><groupId>org.springframework.bootgroupId><artifactId>spring-boot-maven-pluginartifactId>plugin>plugins>build>project>

至于 pom 檔案的其他具體配置這裡不做細究。

實作一個簡單的接口

根據上面步驟項目已經建立好了,項目啟動類如下:

@[email protected]@Configuration//@SpringBootApplicationpublic class SpringBootHelloWorldApplication {public static void main(String[] args) {// 啟動程式,包括Spring容器、内嵌的Tomcat等         SpringApplication.run(SpringBootHelloWorldApplication.class, args);     } }

其中

@SpringBootApplication

相當于

@EnableAutoConfiguration

@ComponentScan

@Configuration

一起使用,主要用來配置啟動類,這裡将在此基礎上實作一個接口,首先建立一個

MessageBean

作為傳回的實體類,如下:

public class MessageBean {private long id;private String author;private String message;public MessageBean(long id, String author, String info) {this.id = id;this.author = author;this.message = info;     }// ... }

然後,建立對應的控制器類,其中注解

@RestController

将類

HelloWorldController

标記為一個控制器,該類裡面的方法的傳回都将被轉換成對象而不是頁面視圖,等價于注解

@Controller

@ResponseBody

一起使用。

傳回的

MessageBean

将會被轉換成

json

,這個過程由 Spring 的 HTTP 消息轉換器自動支援,最終使用

MappingJackson2HttpMessageConverter

MessageBean

對象轉換為對應的

json

格式

//@Controller//@[email protected] class HelloWorldController {private final AtomicLong counter = new AtomicLong();//    @RequestMapping(value = "/message", method = RequestMethod.GET)@GetMapping("/message")public MessageBean message(@RequestParam(name = "author", defaultValue = "jzman") String author,                                @RequestParam(name = "message", defaultValue = "Hello world!") String message) {return new MessageBean(counter.incrementAndGet(), author, message);     } }

@RestController

相當于

@Controller

@ResponseBody

一起使用的效果,就是将 Controller 中傳回的對象轉換為對應的格式。

@Controller

負責的類的注入操作,這裡不進行深入,如果用過 Android 開發中的 Dagger 架構可有助于了解注解

@Controller

的使用,

@ResponseBody

主要是辨別将傳回的對象轉換為特定的格式,預設是 json 格式。

@RequestMapping

用于位址映射,可在類上和方法上使用,如果在類上使用,該類中所有響應請求的方法都要以此為父路徑,如果在方法上使用則表示目前響應的路徑,如上代碼中實作一個 GET 請求可以使用

@RequestMapping

,也可以使用

@GetMapping

@GetMapping

實際上預設指定了請求方法為

RequestMethod.GET

,此外

@RequestParam

用來配置請求參數。

接口測試

運作

SpringBootHelloWorldApplication

,運作成功截圖如下:

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

通路下面接口檢視傳回的資料:

http://localhost:8080/message?author=jzman&message=Hello

傳回資料如下:

{"id":3,"author":"jzman","message":"Hello"}

至此,使用 Spring Boot 實作了一個簡單的接口。

---END---

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

 創作不易,點個“在看”

springboot applications.yml配置HTML視圖解析器_Spring Boot系列之開發一個接口

繼續閱讀