package com.jiudian.manage.config; //// 导入Spring相关注解和类,是核心组件 import org.springframework.context.annotation.Bean;//spring对象 import org.springframework.context.annotation.Configuration;//注释组件 import org.springframework.http.converter.HttpMessageConverter;//负责 HTTP 请求 / 响应消息转换的组件 import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;//配置内容协商(如根据请求头确定返回数据格式) import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;// Spring MVC 的配置适配器组件,用于定制 Web 层的行为(如消息转换、拦截器、视图解析等 import java.nio.charset.Charset;//Java 标准库中处理字符集的类 import java.util.List;//Java 集合框架中的列表接口,用于存储转换器集合。 // * 自定义MVC配置类 // * 用于配置HTTP消息转换和内容协商,解决中文乱码问题 // */ //Spring 会执行这些方法,将返回的对象存入容器(即 “注册 Bean”),供其他组件依赖注入 @Configuration //标识当前类是配置类,Spring 会扫描并加载其中的配置。 public class CustomMVCConfiguration extends WebMvcConfigurerAdapter { //创建并配置String类型的HTTP消息转换器 @Bean // 声明这是一个Bean,会被Spring容器管理 // 创建字符串消息转换器,处理响应体中字符串转换,设置字符集为UTF-8 public HttpMessageConverter responseBodyConverter(){ StringHttpMessageConverter converter = new StringHttpMessageConverter( Charset.forName("UTF-8")); return converter;//返回创建的转换器对象,交给 Spring 容器管理。 } @Override//重写父类,自定义消息转换器配置 //HttpMessageConverter:这是 Spring 框架中定义的HTTP 消息转换器接口 // ,其中 是泛型通配符,表示该转换器可以处理任意类型的数据。 //List> converters 表示:一个包含多种 HTTP 消息转换器的列表 public void configureMessageConverters( List> converters) { super.configureMessageConverters(converters); // 先调用父类方法,保留默认的转换器配置 converters.add(responseBodyConverter()); // 添加我们自定义的字符串转换器 } @Override //重写了父类WebMvcConfigurerAdapter中的同名方法,用于自定义 Spring MVC 的内容协商配置 public void configureContentNegotiation( ContentNegotiationConfigurer configurer) { configurer.favorPathExtension(false); } } // 禁用基于URL路径扩展名,不能有后缀的内容协商 // 例如:/api/users.json 或 /api/users.xml 这样的URL将不再生效