shaolin

悟已往之不谏,知来者之可追!

0%

前端初学SpringBoot系列(一)初始化项目以及引入swagger2

初始化SpringBoot项目

这是前端初学SpringBoot系列的第一节,学习如何初始化一个空项目进行后续开发。目前有两种方式进行初始化:

  1. 去官网https://start.spring.io/直接按照下图进行初始化,相关配置项具体内容可查看文档,SpringBoot只要不选择SNAPSHOT即可。
  2. 直接通过IDEA进行初始化
  3. 初始化后的目录结构如下图所示:
  • 核心java文件在src/main/java内部。
  • 应用的配置资源以及后续的mapper目录在src/main/resources中。其中application.yml或者application.properties中是应用的配置项:
    #服务的端口号
    server.port=8082
    #服务的根目录
    server.servlet.context-path=/api
    至此,项目已经可以通过启动类SpringbootDemoApplication然后run,项目会通过内置的tomcat服务器起来,spring就是做的这么友好。 其中应用的启动类用了基础注解@SpringBootApplication,注解是SpringBoot项目中特别灵活好用的方式,使用了java的反射。

编写基础接口测试

对于前端来说还是喜欢在浏览器上看到直观的现象,目前只能在控制台看到不报错而已,并不是很形象,所以接下来编写一个最基础的接口来体会一下。

  • 写一个测试类做接口

    这是一个最简单的接口,通过使用两个注解@RestController @RequestMapping完成Resultful风格的接口。
    其中@RequestMapping接收多个参数,常见的有以下四个参数:

  1. value代表请求的URL
  2. method代表请求的方法,具体内容详见上图的智能提示,如果不写的话,默认就是GET
  3. params表示请求参数
  4. heads请求头的映射条件
    以上注解可以@GetMapping替换 此时访问浏览器的接口,会看到响应内容:

以上是基础的接口编写过程,实际中场景比以上复杂多变,但是目前迅速的体验一个接口还是可以的。

使用Swagger2展示接口

对于以java为服务端语言的web项目来说,前后端联调接口最常用的就是Swagger,接下来学习引入Swagger2,并展示接口内容。

安装Swagger2依赖

pom.xml中为<dependecies></dependecies>增加子依赖,相关配置内容为

当增加新的配置后,选择Enable Auto-Import即可。

依赖安装完毕之后,书写Swagger2的配置

书写Swagger2配置

使用两个注解@Configuration @Bean

package com.wushao.springbootdemo;
//各种import...
@Configuration
public class Swagger2Config {
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("api文档")
                .description("测试Swagger2的api文档")
                .termsOfServiceUrl("").version("1.0")
                .build();
    }
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.wushao.springbootdemo"))
                .paths(PathSelectors.any())
                .build();
    }
}

以上就是Swagger2的基础配置项,最后关键一步是让启动类识别Swagger

启动类增加新注解@EnableSwagger2

至此,基础的Swagger2完成,可以与前端进行基(hu)础(you)联(ni)调(nen),😄