Swagger+Spring MVC框架学习分享

  1. 最近参与公司接口编写,Android和IOS端都要调用这些接口,需要对接调试,如果没有一个接口文档,管理接口,别人用了接口,也不知道接口怎么用,接口上有什么参数,哪些是必须参数,哪些是非必须参数,于是研究了Swagger框架应用到项目中去,Swagger与Spring项目结合,Spring必须是4.0以上版本,下面是研究的小小demo:  

1、引入Swagger的jar包,由于我的是Maven项目,所以在pom.xml中(注意Spring是4.0以上版本)

  1. <dependency>  
  2.            <groupId>io.springfox</groupId>  
  3.            <artifactId>springfox-swagger2</artifactId>  
  4.            <version>2.0.2</version>  
  5.        </dependency>  
  6.       <dependency>  
  7.           <groupId>com.fasterxml.jackson.core</groupId>  
  8.           <artifactId>jackson-annotations</artifactId>  
  9.           <version>2.4.4</version>  
  10.       </dependency>  
  11.       <dependency>  
  12.           <groupId>com.fasterxml.jackson.core</groupId>  
  13.           <artifactId>jackson-databind</artifactId>  
  14.           <version>2.4.4</version>  
  15.       </dependency>  
  16.       <dependency>  
  17.           <groupId>com.fasterxml.jackson.core</groupId>  
  18.           <artifactId>jackson-core</artifactId>  
  19.           <version>2.4.4</version>  
  20.       </dependency>    

2、 新增Swagger配置代码
  1. package cn.;  
  1. import org.springframework.context.annotation.Bean;  
  2. import org.springframework.context.annotation.Configuration;  
  3. import org.springframework.context.annotation.ComponentScan;  
  4. import org.springframework.web.servlet.config.annotation.EnableWebMvc;  
  5. import springfox.documentation.spi.DocumentationType;  
  6. import springfox.documentation.spring.web.plugins.Docket;  
  7. import springfox.documentation.swagger2.annotations.EnableSwagger2;  
  8.   
  9. @Configuration  
  10. @EnableWebMvc  
  11. @EnableSwagger2  
  12. @ComponentScan(basePackages ={"com.test.api"})  
  13. /** 
  14.  * 
  15.  * @author xiaozhou  
  16.  */  
  17. public class SwaggerConfig {  
  18.   
  19.    /** 
  20.     * Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple 
  21.     * swagger groups i.e. same code base multiple swagger resource listings. 
  22.     */  
  23.    @Bean  
  24.    public Docket customDocket(){  
  25.       return new Docket(DocumentationType.SWAGGER_2);  
  26.   
  27.    }  
  28.   
  29. }  

3、修改 applicationContext.xml
  1. <bean class="cn.conf.SwaggerConfig"/>  


 4、增加一个测试的ContactController 
  1. @Api(value = "contacts-api", description = "有关于用户的CURD操作", position = 5)  
  2. @Controller  
  3. @RequestMapping("/contacts")  
  4. public class ContactController {  
  5.   @Autowired ContactService contactService;  
  6.   @ResponseBody  
  7.   @RequestMapping(value="/1.0/contact/get.do/{id}",method=RequestMethod.GET)  
  8.   public Contact get(@PathVariable Long id) {  
  9.     return contactService.find(id);  
  10.   }  
  11.   @ApiOperation(value = "创建用户", notes = "返回用户实体对象", response = Contact.class, position = 2)  
  12.   @RequestMapping(value = "/1.0/contact/add.do", method=RequestMethod.POST)  
  13.   public void add(@RequestBody Contact contact,HttpServletResponse response) {  
  14.     contactService.create(contact);  
  15.     String location = ServletUriComponentsBuilder.fromCurrentRequest()  
  16.       .pathSegment("{id}").buildAndExpand(contact.getId())  
  17.       .toUriString();  
  18.    
  19.     response.setHeader("Location",location);          
  20.   }  
  21.    
  22.   @RequestMapping(value="/1.0/contact/update.do/{id}",method=RequestMethod.POST)  
  23.   @ApiResponses(value = {  
  24.             @ApiResponse(code = 200, message = "更新成功", response = Contact.class),  
  25.             @ApiResponse(code = 404, message = "找不到页面"),  
  26.             @ApiResponse(code = 500, message = "内部报错")}  
  27.   )  
  28.   public void update(@ApiParam(name="id", value="编号", required=true)@PathVariable Integer id,@RequestBody Contact contact) {  
  29.     contact.setId(id);;  
  30.     contactService.update(contact);  
  31.   }  
  32. }  

5、 添加Swagger UI配置

从网上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面如下图


6、修改index修改index.html

将index.html中http://petstore.swagger.wordnik.com/v2/swagger.json修改为http://localhost:8080/v2/api-docs

7、启动项目,访问http://localhost:8080/v2/index.html即可看到如下所示页面:



参考资料:

https://raibledesigns.com/rd/entry/documenting_your_spring_api_with

  http://www.2cto.com/kf/201502/376959.html

  http://www.3pillarglobal.com/insights/restful-api-documentation-using-swagger-and-spring-mvc

      http://springfox.github.io/

内容概要:本文详细介绍了如何使用Matlab对地表水源热泵系统进行建模,并采用粒子群算法来优化每小时的制冷量和制热量。首先,文章解释了地表水源热泵的工作原理及其重要性,随后展示了如何设定基本参数并构建热泵机组的基础模型。接着,文章深入探讨了粒子群算法的具体实现步骤,包括参数设置、粒子初始化、适应度评估以及粒子位置和速度的更新规则。为了确保优化的有效性和实用性,文中还讨论了如何处理实际应用中的约束条件,如设备的最大能力和制冷/制热模式之间的互斥关系。此外,作者分享了一些实用技巧,例如引入混合优化方法以加快收敛速度,以及在目标函数中加入额外的惩罚项来减少不必要的模式切换。最终,通过对优化结果的可视化分析,验证了所提出的方法能够显著降低能耗并提高系统的运行效率。 适用人群:从事暖通空调系统设计、优化及相关领域的工程师和技术人员,尤其是那些希望深入了解地表水源热泵系统特性和优化方法的专业人士。 使用场景及目标:适用于需要对地表水源热泵系统进行精确建模和优化的情景,旨在找到既满足建筑负荷需求又能使机组运行在最高效率点的制冷/制热量组合。主要目标是在保证室内舒适度的前提下,最大限度地节约能源并延长设备使用寿命。 其他说明:文中提供的Matlab代码片段可以帮助读者更好地理解和复现整个建模和优化过程。同时,作者强调了在实际工程项目中灵活调整相关参数的重要性,以便获得更好的优化效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值