`

SSM+swagger集成

阅读更多
自动前后端分离之后,后端的开发压力小了,但是调试很麻烦。借用swagger工具可以很轻松的生成接口调试页面,以下就是swagger集成的过程。

一、pom.xml引入依赖包
<!-- Swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
</dependency>

二、创建配置类
@Configuration
@EnableSwagger2
@EnableWebMvc
public class Swagger2Config{

	@Value("${swagger.show:false}")
	private boolean swaggerShow;
	
	@Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
        		.enable(swaggerShow)
                .select()
                .apis(RequestHandlerSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("UCT项目接口文档")
                .description("UCT项目接口测试")
                .version("1.0.0")
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("")
                .build();
    }
	
}

三、配置spring-mvc.xml文件
<--增加-->
<!-- 引入swagger相关 ,注意静态资源文件映射是否打开-->
    <bean class="cn.gov.zjport.uct.swagger.Swagger2Config" />
	
    <mvc:resources mapping="/swagger-ui.html" location="classpath:/META-INF/resources/" />
    <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />

<!-- 在一些拦截器中,排除swagger相关内容  -->
<mvc:interceptors>  
	    <mvc:interceptor>       
	        <mvc:mapping path="/**"/>
	        <mvc:exclude-mapping path="/swagger-ui.html"/>
	        <mvc:exclude-mapping path="/swagger-resources/**"/>
	        <mvc:exclude-mapping path="/webjars/**"/>
	        <ref bean="permissionHandlerInterceptor" />  
	    </mvc:interceptor>  
	</mvc:interceptors>

四、暴露api
1. 在类上添加api注解
@Api(tags="用户管理接口文档")

2. 在方法上添加ApiOperation注解
@ApiOperation(value="新增用户信息", httpMethod="POST")
@RequestMapping("/user")
@RestController
@Api(tags="用户管理接口文档")
public class UserController extends BaseController{

/**
     * 修改用户
     * @param user User对象
     */
    @RequestMapping("/updateUser")
    @ApiOperation(value="修改用户信息", httpMethod="POST")
    public JsonResult updateUser(User user){
    	user.setOrgId(this.getOrgId());
        JsonResult jsonResult = new JsonResult();
        
        if(StringUtils.isEmpty(user.getDepartmentIds()) || UctConstant.NULL_DEPARTMENT_ID.equals(user.getDepartmentIds())){
        	jsonResult.setSuccess(false);
    		jsonResult.setMessage("部门不能为空.");
    		return jsonResult;
        }
        
        if(StringUtils.isEmpty(user.getPositionCodes())){
        	jsonResult.setSuccess(false);
    		jsonResult.setMessage("岗位不能为空.");
    		return jsonResult;
        }
        
        if(StringUtils.isEmpty(user.getEmail())){
        	jsonResult.setSuccess(false);
    		jsonResult.setMessage("邮箱不能为空.");
    		return jsonResult;
        }
        ...
}

}



五、访问接口
http://localhost:8080/uct-webapp/swagger-ui.html


注意事项:
1. 在web.xml里,springMVC的url-patten必须至少有一个是 / 模式
<servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics