maven 导入
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
java代码
@Configuration // applicationContext.xml
@EnableSwagger2// 启动swagger2
@ComponentScan(basePackages = "cn.kgc.auth.controller")
//<context-componentScan basepackage="xxxx">
public class SwaggerConfig {
@Bean
public Docket docket(){
Docket docket=new Docket(DocumentationType.SWAGGER_2);
docket.apiInfo(new ApiInfo(
"swagger测试API文档",
"这是测试swagger的文档",
"v1.0",
"http://www.baidu.com",
"张三",
"许可证说明",
"http://www.163.com")
);
return docket;
}
}
/*
没有视图,返回值不再经过InternalResourceViewResolver
只有json
swagger 自动根据定义生成相应的文档。在线可以访问 通过注解
@API 声明这个控制器可以被生成文档,打不打都都生成
@ApiOperation 指定这个方法的一些说明
@ApiPram 指定单个参数的说明
@ApiImplicitParam
@ApiModel 用来描述一个类的
@ApiModelProperty 用来描述类中的属性的
*/
@RestController //=@Controller + @ResponseBody
@Api
public class UserController {
@ApiOperation(value="这是用来登录的操作",notes = "另一种说明这个方法是用来登录的",protocols = "http",httpMethod = "post")
@RequestMapping(value="/login",method = RequestMethod.POST)
@ApiImplicitParams({
@ApiImplicitParam(name = "username",value = "用户名", required = true, defaultValue = "此处填用户名"),
@ApiImplicitParam(name = "password",value = "密码", required = true, defaultValue = "此处填密码")
})
public User login(//@ApiParam(value="用户名",required = true,defaultValue = "此处填用户名")
@RequestParam(value ="username") String username, @RequestParam("password") String password){
User user=null;
if(username.equals("admin")){
user=new User();
user.setUsername(username);
user.setPassword(password);
}
return user;
}
@RequestMapping(value="/regedit",method =RequestMethod.POST)
@ApiOperation(value="注册方法",notes = "用户名必填…………")
public Object regeidt(@RequestBody User user){
System.out.println(user);
return "{'message':'注册成功','code':00000,'user':{'age':18}}";
}
}
@ApiModel(value = "User",description = "这是用来封装用户信息")
public class User {
@ApiModelProperty(value = "值",name = "用户名",required = true,notes = "说明1")
String username;
@ApiModelProperty(value = "值",name = "密码",required = true,notes = "说明1")
String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--使用注解需要自动扫描 cn.smbms.controller-->
<context:component-scan base-package="cn.kgc.auth.controller"/>
<!--注解运用方法-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--使用默认的Servlet来响应静态文件
设置访问swagger
-->
<mvc:default-servlet-handler/>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--编码过滤器(post中文乱码)-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--DispatcherServlet去管理Servlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--在家SpringMVC配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
配置完成 访问地址:http://localhost:8080/swagger-ui.html