对于像我这种web小白,想要集成这个功能又不懂maven走了很多弯路,搜索了很多资料,结果还是搞不得不清不楚,最后还是被我搞明白了。
1. 首先创建maven项目。new project选到maven,勾选create from archetype,然后在下面的项目列找到
org.apache.maven.archetype:maven-archetype-webapp
然后点next,项目名,包名字,一直next到finsh就可以了,在创建的项目中包含一个pom.xml的配置文件。如果本地没有maven的资源库,idea会马上进行自动下载,并且会提示问是否自动加载这些资源,我们选enable就可以了。如果没有选,需要手动完成,则右击pom.xml,找到maven->Reimport,就可以重新加载资源。
2. 配置pom.xml
2.1 配置springmvc的资源库
定义springmvc版本的属性,方便以后修改版本信息
4.2.5.RELEASE
添加一对
org.springframework
spring-webmvc
${springmvc.version}
org.springframework
spring-orm
${springmvc.version}
org.springframework
spring-test
${springmvc.version}
jar
test
org.slf4j
slf4j-log4j12
1.7.12
commons-io
commons-io
2.0.1
当然,如果需要用httprequest这个对象不能少了配置tomcat
org.apache.tomcat
tomcat-servlet-api
7.0.8
provided
2.2 配置mybatis
org.mybatis
mybatis
3.3.0
org.mybatis
mybatis-spring
1.3.0
mysql
mysql-connector-java
5.1.38
2.3 配置swagger
com.mangofactory
swagger-springmvc
1.0.1
com.fasterxml.jackson.dataformat
jackson-dataformat-xml
2.7.4
com.fasterxml.jackson.core
jackson-databind
2.7.4
还需一个仓库
jcenter-release
jcenter
http://oss.jfrog.org/artifactory/oss-release-local/
3 加入Springmvc项目
加入自己的springmvc项目,注意非java文件放在src/main/resources目录下,编译后文件会在classpath下,还需要调整springmvc,mybatis文件的引用文件路径。
4加入swagger ui资源
swaggerui 的资源开源在https://github.com/swagger-api/swagger-ui。下载这个库,把库中的dist文件复制到自己项目中webapp目录下。文件夹名字可以随意修改,但是这个路径就是访问api-docs路径。在dist的目录下找到index.html,打开找到一段代码,把下面这个
url ="http://petstore.swagger.io/v2/swagger.json";
替换成
url ="http://localhost:8080/api-docs";
在src中创建一个swagger配置java类
@Configuration
@EnableWebMvc
@EnableSwagger
@ComponentScan("com.myapp.controllers")
public class MySwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig;
@Autowired
public void setSpringSwaggerConfig(
SpringSwaggerConfig springSwaggerConfig) {
this.springSwaggerConfig = springSwaggerConfig;
}
@Bean //Don't forget the @Bean annotation
public SwaggerSpringMvcPlugin customImplementation(){
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.apiInfo(apiInfo())
.includePatterns(".*pet.*");
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo(
"My Apps API Title",
"My Apps APIDescription",
"My Apps API terms ofservice",
"My Apps API ContactEmail",
"My Apps API LicenceType",
"My Apps API LicenseURL"
);
return apiInfo;
}
}
按照自己的需要它的内容。
然后在springmvc配置文件中引用这个bean。
并且设置html静态资源
5 调整controller forswagger
@Controller
@RequestMapping("/admin")
@Api(value = "admin") //写在contrller的@api注释是swagger用于将api分组,切记不要用中文,否则无法生成出文档
public class UserController {
@RequestMapping(value = "/login",method = RequestMethod.POST)
@ApiOperation(value = "登陆",httpMethod ="POST") //value可以写中文
public String login(@ApiIgnore ModelMap modelMap //@apiignore表示忽略这个参数的输入,当然我们不需要客户端提交这个值
, HttpServletRequest request
, @ApiParam(required = true,value = "用户名")@RequestParam String username
, @ApiParam(required = true,value = "密码")@RequestParam String pwd)
throwsException{
。。。。。。。。代码内容
}
}