天天看点

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系列之开发一个接口

继续阅读