Springboot下访问不到

时间:2025-03-21 10:17:56

问题

在前面的Swagger2的基本配置中是可以访问到的
但当自定义继承配置WebMvcConfigurationSupport后便无法访问到该页面,原因参考请看参考资料。

首先看我的自定义配置,

*************
 * HttpMessageConverter转换处理
 * 处理转义hmtl标签为正常的hmtl标签
 * @author zjcjava@163.com
 *
 */
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

    @Bean
    public MappingJackson2HttpMessageConverter customJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        (
                DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        ().setNullValueSerializer(
                new JsonSerializer<Object>() {
                    @Override
                    public void serialize(Object value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        ("");
                    }
                });
        // 进行HTML解码
        (new SimpleModule().addSerializer(
                , new JsonSerializer<String>() {
                    @Override
                    public void serialize(String value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        (StringEscapeUtils.unescapeHtml4(value));
                    }
                }));
        (objectMapper);
        return jsonConverter;
    }

    @Override
    public void configureMessageConverters(
            List<HttpMessageConverter<?>> converters) {
        (customJackson2HttpMessageConverter());
        super.addDefaultHttpMessageConverters(converters);
    }



}

如果我把该文件全部注释掉则会正常显示,否则无法访问到,

解决方法

如果继承了WebMvcConfigurationSupport,则在配置文件在中配置的相关内容会失效,需要重新指定静态资源

因此参照资料2我做了处理如下,在该代码的末尾加上静态资源配置

代码加在

*************
 * HttpMessageConverter转换处理
 * 处理转义hmtl标签为正常的hmtl标签
 * @author zjcjava@163.com
 *
 */
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

    @Bean
    public MappingJackson2HttpMessageConverter customJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        (
                DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        ().setNullValueSerializer(
                new JsonSerializer<Object>() {
                    @Override
                    public void serialize(Object value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        ("");
                    }
                });
        // 进行HTML解码
        (new SimpleModule().addSerializer(
                , new JsonSerializer<String>() {
                    @Override
                    public void serialize(String value, JsonGenerator jgen,
                            SerializerProvider provider) throws IOException,
                            JsonProcessingException {
                        (StringEscapeUtils.unescapeHtml4(value));
                    }
                }));
        (objectMapper);
        return jsonConverter;
    }

    @Override
    public void configureMessageConverters(
            List<HttpMessageConverter<?>> converters) {
        (customJackson2HttpMessageConverter());
        super.addDefaultHttpMessageConverters(converters);
    }

    /**
     * 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 需要重新指定静态资源
     * 
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        ("/**").addResourceLocations(
                "classpath:/static/");
        ("").addResourceLocations(
                "classpath:/META-INF/resources/");
        ("/webjars/**").addResourceLocations(
                "classpath:/META-INF/resources/webjars/");
        super.addResourceHandlers(registry);
    }


    /**
     * 配置servlet处理
     */
    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        ();
    }

}

参考资料

SpringBoot配置SwaggerUI访问404错误处理1
SpringBoot配置SwaggerUI访问404错误处理2