第一步
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
第二步 新增配置类
package com.zzh.elite.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
List<Parameter> pars = new ArrayList<Parameter>();
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
.paths(PathSelectors.any())
.build()
.globalOperationParameters(pars)
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("流程引擎 RESTful API")
.description("同志们 大家辛苦了")
.termsOfServiceUrl("https://blog.youkuaiyun.com/z446981439?viewmode=contents")
.version("1.0")
.build();
}
}
第三步 使用
package com.zzh.elite.controller; import com.fasterxml.jackson.databind.ObjectMapper; import com.zzh.elite.dto.MongodbDTO; import com.zzh.elite.dto.MysqlTestDTO; import com.zzh.elite.dto.RedisTestDTO; import com.zzh.elite.entity.MongodbTest; import com.zzh.elite.entity.UserLog; import com.zzh.elite.service.MongodbService; import com.zzh.elite.service.UserService; import com.zzh.elite.utils.CommonUtils; import com.zzh.elite.utils.RedisUtils; import com.zzh.elite.viewModel.ResponseMessage; import com.zzh.elite.vo.MysqlTestVO; import com.zzh.elite.vo.RedisTestVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageDeliveryMode; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.support.converter.AbstractJavaTypeMapper; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.Date; @Slf4j @RestController("elite")
@Api(description = "配置测试")
public class EliteController { @Autowired RedisUtils redisUtils; @Autowired UserService userService; @Autowired private ObjectMapper objectMapper; @Autowired private RabbitTemplate rabbitTemplate; @Autowired private Environment env; @Autowired MongodbService mongodbService; @RequestMapping(value = "test/swagger",method = RequestMethod.POST) @ApiOperation("swagger测试") public ResponseMessage<Object> login(){ log.info("成功"); return CommonUtils.okResponseVO(null); } @RequestMapping(value = "test/redis",method = RequestMethod.POST) @ApiOperation("redis测试") public ResponseMessage<RedisTestVO> redis(@RequestBody RedisTestDTO redisTestDTO){ redisUtils.set(redisTestDTO.getRedisKey(),redisTestDTO.getRedisValue()); RedisTestVO redisTestVO=new RedisTestVO(); redisTestVO.setRedisKey(redisTestDTO.getRedisKey()); redisTestVO.setRedisValue(redisUtils.get(redisTestDTO.getRedisKey())); return CommonUtils.okResponseVO(redisTestVO); } @RequestMapping(value = "test/mysql",method = RequestMethod.POST) @ApiOperation("mysql测试") public ResponseMessage<MysqlTestVO> mysql(@RequestBody MysqlTestDTO mysqlTestDTO){ return CommonUtils.okResponseVO(userService.mysql(mysqlTestDTO)); } @RequestMapping(value = "test/rabbitMq",method = RequestMethod.POST) @ApiOperation("rabbitMq 生产者测试") public ResponseMessage<MysqlTestVO> rabbitMq(@RequestBody MysqlTestDTO mysqlTestDTO){ try { UserLog userLog = new UserLog(mysqlTestDTO.getUser(), "Login", objectMapper.writeValueAsString(mysqlTestDTO));// userLog.setCreateTime(new Date()); rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter()); rabbitTemplate.setExchange(env.getProperty("log.user.exchange.name")); rabbitTemplate.setRoutingKey(env.getProperty("log.user.routing.key.name")); Message message = MessageBuilder.withBody(objectMapper.writeValueAsBytes(userLog)).setDeliveryMode(MessageDeliveryMode.PERSISTENT).build(); message.getMessageProperties().setHeader(AbstractJavaTypeMapper.DEFAULT_CONTENT_CLASSID_FIELD_NAME, MessageProperties.CONTENT_TYPE_JSON); rabbitTemplate.convertAndSend(message); } catch (Exception e) { e.printStackTrace(); } return CommonUtils.okResponseVO(null); } @RequestMapping(value = "test/mongo/save",method = RequestMethod.POST) @ApiOperation("mongodb新增测试") public ResponseMessage<Object> mongoSave(@RequestBody MongodbDTO mongodbDTO){ mongodbService.saveTest(mongodbDTO); return CommonUtils.okResponseVO(null); } @RequestMapping(value = "test/mongo/find",method = RequestMethod.POST) @ApiOperation("mongodb查询测试") public ResponseMessage<MongodbTest> mongoSave(String Name){ return CommonUtils.okResponseVO(mongodbService.findTestByName(Name)); } @RequestMapping(value = "test/mongo/update",method = RequestMethod.POST) @ApiOperation("mongodb修改测试") public ResponseMessage<MongodbTest> mongoUpdate(MongodbDTO mongodbDTO){ mongodbService.updateTest(mongodbDTO); return CommonUtils.okResponseVO(null); } @RequestMapping(value = "test/mongo/delete",method = RequestMethod.POST) @ApiOperation("mongodb删除测试") public ResponseMessage<MongodbTest> mongoDelete(Integer id){ mongodbService.deleteTestById(id); return CommonUtils.okResponseVO(null); } }
第四步 效果
http://localhost:8000/elite-service/swagger-ui.html#/