ecplise搭建ssm+swagger2

目录

 

第一步:准备包,swagger2包与spring包要搭配使用

swagger2

spring

第二步,创建MySwaggerConfig.java

第三步:spring-mvc.xml添加配置

第四步:很重要,必须/不可用*.xxx这个

第五步:controller层接口修改添加注释

PersonController,类名上添加:@Api(value = "test")

方法接口上添加:@ApiOperation(value = "showPersons")


第一步:准备包,swagger2包与spring包要搭配使用

swagger2

<!-- 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>

spring

<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<!-- spring版本号 -->
		<spring.version>4.3.4.RELEASE</spring.version>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>
<!-- spring核心包 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
		</dependency>

第二步,创建MySwaggerConfig.java

package org.test.base.swagger;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;

@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages = "org.test.controller")//你自己的controller层接口的位置,多位置逗号隔开追加
public class MySwaggerConfig extends WebMvcConfigurationSupport{
    @Bean
    public Docket myDocket() {
        Docket docket = new Docket(DocumentationType.SWAGGER_2);
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("MySwagger[Api]") // 标题
                .description("") // 描述
                .contact(new Contact("", "", "")) // 联系方式
                .version("2.0.0") // 版本号
                .build();
        docket.apiInfo(apiInfo);
        //设置只生成被Api这个注解注解过的Ctrl类中有ApiOperation注解的api接口的文档
        docket.select()
        .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
        .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
        .paths(PathSelectors.any()) // 对所有路径进行监控
        .build();
        return docket;
    }
    
//    @Override
//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/**").addResourceLocations(
//                "classpath:/static/");
//        registry.addResourceHandler("swagger-ui.html").addResourceLocations(
//                "classpath:/META-INF/resources/");
//        registry.addResourceHandler("/webjars/**").addResourceLocations(
//                "classpath:/META-INF/resources/webjars/");
//        super.addResourceHandlers(registry);
//    }
//
//    @Bean
//    public RequestMappingInfoHandlerMapping requestMapping(){
//        return new RequestMappingHandlerMapping();
//    }
}

第三步:spring-mvc.xml添加配置

<bean class="org.test.base.swagger.MySwaggerConfig"/><!--第二步类的位置,下面的配置都默认不用改-->
	<!-- <bean class="springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration" id="swagger2Config"/> -->
    <mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
    <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
	<mvc:default-servlet-handler/>

第四步:很重要,必须/不可用*.xxx这个

<servlet-mapping>
		<servlet-name>springDispatcherServlet</servlet-name><!--有的写得是springmvc-->
		<url-pattern>/</url-pattern>
	</servlet-mapping>

第五步:controller层接口修改添加注释

PersonController,类名上添加:@Api(value = "test")

方法接口上添加:@ApiOperation(value = "showPersons")

可自行百度查看swagger2注释用法

@Controller
@Api(value = "test")
@RequestMapping("/personController")
public class PersonController {
    
	@Autowired
    private PersonService personService;

    @RequestMapping(value = "/showPerson",method = RequestMethod.POST)
    @ApiOperation(value = "showPersons")
    public ModelAndView showPersons(){
        List<Person> persons = personService.loadPersons();
        ModelAndView view = new ModelAndView("showPerson");
        view.addObject("persons", persons);
        return view;
    }
    
    @RequestMapping(value = "/showPerson2",method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation(value = "showPerson2")
    public List<Person> showPersons2(@RequestBody String id){
        List<Person> persons = personService.loadPersons();
        return persons;
    }
    
    @RequestMapping(value="/queryByPage", method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation(value = "queryByPage")
    public ServerResponse<Page<Person>> queryByPage(@RequestBody PageParam<PersonParam> pageParam) {
    	Map<String, Object> map = PropertieUtil.getPropertie();
		System.out.println(map.get("jdbc.driver"));
        return personService.queryByPage(pageParam);
    }
}

完成,查看是否成功访问:http://ip:端口/工程名/swagger-ui.html,无工程名的就去掉工程名

我的是:http://localhost:8099/own/swagger-ui.html

可能报错:java.lang.NoSuchMethodError:  UriComponentsBuilder()

错误解决查看: java.lang.NoSuchMethodError: UriComponentsBuilder

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值