table of Contents
1. Add maven dependency
<!--Springboot集成Swagger2的依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.8.9</version>
</dependency>
2. Add Swagger2Config configuration file
@Configuration
public class Swagger2Config {
@Bean
public Docket createRestApi() {
//扫描控制器中Swagger2的注解
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("cn.jizi.controller"))//指定包
.paths(PathSelectors.any())
.build();
}
//API描述信息
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboot利用swagger构建api文档")
.description("简单优雅的restfun风格")
.termsOfServiceUrl("")
.version("1.0")
.build();
}
}
3. Describe the interface
@Controller
@RequestMapping("/sel")
public class MenuController extends BaseConstructor {
@Autowired
private MenuService menuService;
//跳转到登录页面
@ApiOperation(value = "跳转页面")
@GetMapping("toLogin")
public String toLogin(){
return "view/login";
}
@ApiOperation(value = "登录",notes = "查询是否存在这个用户")
@GetMapping("login")
public String login(Model model, HttpServletRequest request,String loginname,String pwd){
//第一步:建立subject
Subject subject = SecurityUtils.getSubject();
//第二步:封装token 凭证
UsernamePasswordToken token = new UsernamePasswordToken(loginname, pwd);
//第三步:登陆
try {
//只要能通过认证就能通过了
subject.login(token);
SysUser users=menuService.loginname(loginname);
//把user放进session
request.getSession().setAttribute("user", users);
model.addAttribute("loginname",users.getRealname());
model.addAttribute("id",users.getUserid());
//把yonghu放进session
request.getSession().setAttribute("yonghu", users.getRealname());
return "view/index";//跳转首页
} catch (UnknownAccountException e) {
//用户为空或不存在
model.addAttribute("msg", "不存在这样的用户!");
return "view/login";
} catch (IncorrectCredentialsException e) {
model.addAttribute("msg", "密码输入不对!");
return "view/login";
}
}
}
Operation result:
method name: common annotation
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数
4. Add comments
@EnableSwagger2
@EnableSwaggerBootstrapUI
@SpringBootApplication
public class HospitalApplication {
public static void main(String[] args) {
SpringApplication.run(HospitalApplication.class, args);
}
}