明天在迁徙一个老我的项目时,查看Swagger文档,发现间接报错No operations defined in spec。
跟了一会儿代码后发现返回的数据是有的。api也都被swagger扫描到了。又看了会儿发现问题在于零碎里有个类实现了WebMvcConfigurer。

把@Configuration敞开了swagger就失常了。所以是该类里的货色导致了swagger异样。最初网上找了一会儿发现起因是 configureMessageConverters导致的。

修复办法:

1.新建一个类

import com.google.gson.JsonElement;import com.google.gson.JsonParser;import com.google.gson.JsonSerializationContext;import com.google.gson.JsonSerializer;import springfox.documentation.spring.web.json.Json;import java.lang.reflect.Type;public class SpringfoxJsonToGsonAdapter implements JsonSerializer<Json> {    @Override    public JsonElement serialize(Json json, Type type, JsonSerializationContext context) {        //这里原博客用了过期的办法,把它改过来了        return JsonParser.parseString(json.value());    }}

2.批改WebMvcConfigurer的实现类

    @Override    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {        converters.removeIf(httpMessageConverter -> httpMessageConverter instanceof MappingJackson2HttpMessageConverter);        converters.add(gsonHttpMessageConverters());    }    @Bean    public GsonHttpMessageConverter gsonHttpMessageConverters() {        Gson gson = new GsonBuilder()                .registerTypeAdapter(Json.class, new SpringfoxJsonToGsonAdapter())                .create();        GsonHttpMessageConverter gsonConverter = new GsonHttpMessageConverter(gson);        return gsonConverter;    }

重启下问题就解决了

参考原博客: https://codeleading.com/artic...