源代码:链接:https://pan.baidu.com/s/1pxo_CJiNDsWGVJNsmKFpuw
提取码:s4uj
启动项目访问地址:http://localhost:8080/swagger-ui.html#/
1.UserVo.java
/**
*
*/
package com.jz.swagger.domain;
import lombok.Data;
/**
* @author liurui
* @date 2019年8月30日
*/
@Data
public class UserVo {
private String name;
private String age;
}
2.UserVoArgumentResolver.java配置Resolver类
/**
*
*/
package com.jz.swagger.config.arguments;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import com.jz.swagger.domain.UserVo;
import lombok.extern.slf4j.Slf4j;
/**
* @author liurui
* @date 2019年8月30日
*/
@Component
@Slf4j
public class UserArgumentsResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
// 一个api接口,多个参数,将会多次调用此方法匹配是不是你需要的参数类型
Class<?> clazz = parameter.getParameterType();
log.info("===============【参数装配】clazz={}",clazz.getName());
return UserVo.class.getName().equalsIgnoreCase(clazz.getName());
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
// 该方法返回就是Controller中api方法中参数赋的值
UserVo userVo = new UserVo();
userVo.setName("周扒皮");
userVo.setAge(18+"");
return userVo;
}
}
3.ArgumentConfig.java将Resolver类配置到Spring中
/**
*
*/
package com.jz.swagger.config.arguments;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import lombok.extern.slf4j.Slf4j;
/**
* @author liurui
* @date 2019年8月30日
*/
@Configuration
@Slf4j
public class ArgumentConfig implements WebMvcConfigurer{
@Autowired
private UserArgumentsResolver userArgumentsResolver;
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
log.info("【配置argumentResolver】ok");
resolvers.add(userArgumentsResolver);
}
}
非关键类不写了,直接下载源码看一下,下载即可启动,无需任何参数需要配置。
运行结果图: