liujie
2026-09-20 25999c575dd42b4715e49d3fe57e73c2c3204ccb
admin-server/src/main/java/com/estate/expert/admin/config/WebMvcConfig.java
@@ -1,10 +1,13 @@
package com.estate.expert.admin.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.ResourceHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.annotation.Resource;
@@ -14,16 +17,37 @@
 * 很奇怪,需要自定义一个WebMvcConfig,才能让Jackson2HttpMessageConverter生效
 * https://www.cnblogs.com/joeblackzqq/p/17716810.html
 */
@Slf4j
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Resource
    private ObjectMapper objectMapper;
    @Value("${file.upload.dir}")
    private String uploadDir;
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.removeIf(o -> o instanceof MappingJackson2HttpMessageConverter);
        converters.add(new MappingJackson2HttpMessageConverter(objectMapper));
        converters.add(new ResourceHttpMessageConverter());
    }
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 配置报告文件访问路径
        String reportPath = "file:" + uploadDir + "/reports/";
        registry.addResourceHandler("/files/reports/**")
                .addResourceLocations(reportPath);
        // 配置报告图片访问路径
        String imagePath = "file:" + uploadDir + "/reports/images/";
        registry.addResourceHandler("/files/reports/images/**")
                .addResourceLocations(imagePath);
        log.info("静态资源映射配置完成:");
        log.info("  - /files/reports/** -> {}", reportPath);
        log.info("  - /files/reports/images/** -> {}", imagePath);
    }
}