Springboot+Springmvc+Swagger集成

高级集成篇:7步代码详解Springboot+Springmvc+Swagger+Gradle!

互联网IT信息   2018-06-02 18:39:25

提示:目前整理的高级集成的代码,可通过以下方式获得下载方式:

关注头条号“互联网IT信息”——>私信发送 “高级集成” ,即可获取代码下载的方式。

同时为了感谢大家一直以来的支持,私信后也可以获取如下架构资料:

人工智能、高端架构、大数据、云计算、分布式、微服务

1. 此篇基于代码实战的技术文章的内容简介

目前SpringBoot是系统开发中用的非常多的用于简化spring配置的框架,而swagger是致力于通过代码自动生成api文档供研发人员使用,springmvc是常用的控制器技术,而gradle是目前认为的最佳的代码构建工具,而此篇文章就是通过一个非常简单易懂的代码实战来讲解这四个最常用的框架是如何集成使用的。

2. springboot+swagger+springmvc+gradle的核心步骤简介:

1)利用idea创建一个基础的gradle工程

2)修改工程中的gradle文件,用来配置所有依赖的jar包

3)编写工程的配置参数文件application.properties

4) 创建springboot的启动类

5)创建swagger2的配置类,并根据项目需要进行改写

6)创建springmvc的控制器类,用于测试,同时基于控制器详细讲解swagger的常见注解

7)启动springboot工程,并用浏览器打开进行测试

3. 以上7步集成的详细代码如下:

1)利用idea创建一个基础的gradle工程

基于idea创建一个gradle类型的基础工程,工程名为test

2)修改工程中的gradle文件,用来配置所有依赖的jar包

build.gradle的核心配置文件内容如下:

高级集成篇:7步代码详解Springboot+Springmvc+Swagger+Gradle!

3)编写工程的配置参数文件application.properties

application.properties文件是springboot启动加载的唯一配置文件,核心内容如下:

高级集成篇:7步代码详解Springboot+Springmvc+Swagger+Gradle!

第一个参数:是springboot的内置tomcat的端口号

第二个参数:是给swagger用的,后续会继续介绍

4) 创建springboot的启动类

给该启动类命名为:Swagger2BootApplication,具体代码如下:

@SpringBootApplication
public class Swagger2BootApplication {
	public static void main(String[] args) {
		SpringApplication.run(Swagger2BootApplication.class, args);
	}
}


5)创建swagger2的配置类,并根据项目需要进行改写

此配置类是为了更好的对集成的swagger进行个性化修改而创建的,配置类是:Swagger2Config,具体代码如下:

@Configuration
@EnableSwagger2
@ConfigurationProperties
public class Swagger2Config {

	@Value("${swagger.basePackage}")
	private String basePackage;
	
	@Bean
	public Docket createRestApi(){
		return new Docket(DocumentationType.SWAGGER_2)
			.apiInfo(apiInfo())
			.select()//选择哪些路径和api生成api文档
			.apis(RequestHandlerSelectors.basePackage(basePackage))//对所有api进行监控
			.paths(PathSelectors.any())//对所有路径进行监控
			.build();
	}

	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
			.title("基于swagger的项目API使用手册")
			.description("信息服务组件API")
			.version("1.0")
			.build();
	}
}

6)创建springmvc的控制器类,用于测试,同时基于控制器详细讲解swagger的常见注解

(1)以上步骤,就完成了基础功能的集成和个性化修改,此步骤创建的控制器类就是为了测试集成好的swagger是否能用

InfoController代码如下:

@RestController
public class InfoController {
	
	@ApiOperation(value="根据ID获取单个信息",notes="根据ID获取单个信息")
	@ApiImplicitParam(name="id",value="信息ID",required=true,dataType="int",paramType="path")
	@ApiResponses(value={
			@ApiResponse(code=400,message="请求参数错误"),
			@ApiResponse(code=500,message="服务异常")
	})
	@RequestMapping(value="info/{id}",method=RequestMethod.GET)
	public String getInfoById(@PathVariable("id") int id){
		return "info ID:"+id;
	}
	
	@ApiOperation(value="创建单个信息",notes="创建单个信息")
	@ApiImplicitParam(name="infoContent",value="信息内容",required=true,dataType="String")
	@RequestMapping(value="info",method=RequestMethod.POST)
	public String add(@RequestBody String infoContent){
		return "infoContent is : "+infoContent;
	}
	
	@ApiOperation(value="根据ID删除单个信息",notes="根据ID删除单个信息")
	@ApiImplicitParam(name="id",value="信息ID",required=true,dataType="Integer",paramType="path")
	@RequestMapping(value="info/{id}",method=RequestMethod.POST)
	public String delete(@PathVariable("id") Integer id){
		return "delete info ID : "+id;
	}
	
	@ApiOperation(value="根据ID更新单个信息",notes="根据ID更新单个信息")
	@ApiImplicitParams({
		@ApiImplicitParam(name="id",value="信息ID",required=true,dataType="int",paramType="path"),
		@ApiImplicitParam(name="infoContent",value="信息内容",required=true,dataType="String")
	})
	@RequestMapping(value="info/{id}",method=RequestMethod.PUT)
	public String update(@PathVariable("id") Integer id,@RequestBody String infoContent){
		return "info id : "+id+"; info content update : "+infoContent;
	}
	
	@ApiIgnore
	@RequestMapping(value="/temp",method=RequestMethod.GET)
	public String ignoreInfo(){
		return "igonre info!!";
	}

(2)基于此控制器类详细讲解swagger的各种注解

高级集成篇:7步代码详解Springboot+Springmvc+Swagger+Gradle!

7)启动springboot工程,并用浏览器打开进行测试

(1)在springboot工程启动类Swagger2BootApplication中,利用idea进行run启动

(2)打开如下链接:http://localhost:8080/swagger-ui.html

高级集成篇:7步代码详解Springboot+Springmvc+Swagger+Gradle!

猜你喜欢

转载自blog.csdn.net/slss01/article/details/80566537
今日推荐