SpringBoot+Swagger (Spring5.x swagger2.x)

    技术2022-07-10  149

    接触Java四年了。最近才拿框架跑。 springboot,终于弄出来一个。

    感谢博客:

    https://blog.csdn.net/weixin_42953268/article/details/89383024【学习了如何新建一个springboot项目及restful接口】 https://blog.csdn.net/larger5/article/details/79478606【swagger2】 https://blog.csdn.net/larger5/article/details/79325999【swagger2】 https://www.jianshu.com/p/5c1111d3b99f【swagger2 ui】

    整个代码可以下载:

    https://download.csdn.net/download/weixin_36267209/12566168

    项目结构:

    User.java

    package com.bjjg.bpm.bean; import io.swagger.annotations.ApiModelProperty; public class User { @ApiModelProperty(value = "用户id") private int id; @ApiModelProperty(value = "用户名") private String name; @ApiModelProperty(value = "年龄") private int age; public User(){ } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

    UserDao.java

    package com.bjjg.bpm.dao; import com.bjjg.bpm.bean.User; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Repository; import java.util.List; /** * Title:UserDao * Description:用户数据处理接口 * @author ty * @date 2019/4/17 */ @Repository @Mapper public interface UserDao { /** * *用户增加 **/ @Insert("insert into t_user(id,name,age) values (#{id},#{name},#{age})") void addUser(User user); /** *用户数据修改 * * * @param user * */ @Update("update t_user set name=#{name},age=#{age} where id=#{id}") void updateUser(User user); /** * 用户数据删除 * @param id */ @Delete("delete from t_user where id=#{id}") void deleteUser(int id); /*** * 根据名称查询用户信息 */ @Select("selete id,name,age FROM t_user where name=#{name}") User findByName(@Param("username")String username); /** * 查询所有 */ @Select("Select id,name,age FROM t_user") List<User> findAll(); }

    UserService.java

    package com.bjjg.bpm.service; import com.bjjg.bpm.bean.User; import java.util.List; public interface UserService { /** * 增加用户 * @param user * @retuen * */ boolean addUser(User user); /*** * 修改用户信息 * @param user * @return * */ boolean updateUser(User user); /** * 删除用户 * @param user * @return * */ boolean deleteUser(int user); /** * 根据用户名字查询用户 * @param username * @return */ User findUserByName(String username); /** * 查询所有 * @return * */ List<User> findAll(); }

    UserServiceImpl.java

    package com.bjjg.bpm.service; import com.bjjg.bpm.bean.User; import com.bjjg.bpm.dao.UserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public boolean addUser(User user) { boolean flag=false; try { userDao.addUser(user); flag=true; }catch(Exception e){ e.printStackTrace(); } return flag; } @Override public boolean updateUser(User user) { boolean flag=false; try { userDao.updateUser(user); flag=true; }catch(Exception e){ e.printStackTrace(); } return flag; } @Override public boolean deleteUser(int user) { boolean flag=false; try { userDao.deleteUser(user); flag=true; }catch(Exception e){ e.printStackTrace(); } return flag; } @Override public User findUserByName(String username) { return userDao.findByName(username); } @Override public List<User> findAll() { return userDao.findAll(); } }

    UserRestController.java

    package com.bjjg.bpm.web; import com.bjjg.bpm.bean.User; import com.bjjg.bpm.service.UserService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.List; @RestController @Api(tags = "用户数据处理模块API") @RequestMapping(value = "/api") @EnableSwagger2 public class UserRestController { @Autowired private UserService userService; @ApiOperation(value = "新增一个用户") @RequestMapping(value = "/user",method = RequestMethod.POST) public boolean addUser(@ApiParam(value = "增加用户",required = true)@RequestParam(value = "userid",required = true) User user){ System.out.println("开始新增用户"); return userService.addUser(user); } @ApiOperation(value = "更新一个用户") @RequestMapping(value = "/user",method =RequestMethod.PUT ) public boolean updateUser(User user){ System.out.println("开始更新用户"); return userService.updateUser(user); } @ApiOperation(value = "删除一个用户") @RequestMapping(value = "/user",method = RequestMethod.DELETE) public boolean delete(@RequestParam(value = "id",required = true) int id){ System.out.println("开始删除用户"); return userService.deleteUser(id); } @ApiOperation(value = "根据用户名,查找一个用户") @RequestMapping(value = "/user",method = RequestMethod.GET) public User findByUserName(@RequestParam(value = "userName",required = true) String userName){ System.out.println("开始根据用户名字进行查找"); return userService.findUserByName(userName); } @ApiOperation(value = "查找所有用户") @RequestMapping(value = "/findall",method = RequestMethod.GET) public List<User> findAll(){ System.out.println("开始查找所有用户"); return userService.findAll(); } }

    BpmApplication.java【核心运行类】

    package com.bjjg.bpm; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @MapperScan("com.bjjg.bpm.dao") @EnableSwagger2 public class BpmApplication { public static void main(String[] args) { SpringApplication.run(BpmApplication.class, args); } }

    SwaggerConfig.java【Swagger 设置类】

    package com.bjjg.bpm; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) //apiInfo指定测试文档基本信息,这部分将在页面展示 .apiInfo(apiInfo()) .select() //apis() 控制哪些接口暴露给swagger, // RequestHandlerSelectors.any() 所有都暴露 // RequestHandlerSelectors.basePackage("com.info.*") 指定包位置 .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build(); } //基本信息,页面展示 private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("测试项目标题") .description("接口描述") //联系人实体类 .contact( new Contact("名字", "网址", "邮箱") ) //版本号 .version("1.0.0-SNAPSHOT") .build(); } }

    另外 最后的最后, https://github.com/swagger-api/swagger-ui 从网站上下载这个项目,将其dist下所有内容拷贝到本地项目resource/static/swagger下面, 并修改 index.html 将原来的url = “http://petstore.swagger.io/v2/swagger.json”; 修改为 “http://localhost:8090/v2/api-docs”;

    现在 在网上就可以运行啦~ 访问: http://localhost:8080/swagger/index.html

    Processed: 0.011, SQL: 10