1.自定义MessageConverter定制相应规则
规则为如果返回数据是person类型则返回数据为其属性值组成的字符串用逗号隔开属性值
public class myMessageConvert implements HttpMessageConverter<Person> {
//实现接口的四个方法
@Override
public boolean canRead(Class<?> aClass, MediaType mediaType) {
return false;//只自定义写操作读操做不做处理
}
@Override
public boolean canWrite(Class<?> aClass, MediaType mediaType) {
return aClass.isAssignableFrom(Person.class);//如果是要返回的是Person类型则返回TRUE
}
@Override
public List<MediaType> getSupportedMediaTypes() {
return MediaType.parseMediaTypes("application/wang");//为数据格式命名
}
@Override
public Person read(Class<? extends Person> aClass, HttpInputMessage httpInputMessage) throws IOException, HttpMessageNotReadableException {
return null;
}
@Override
public void write(Person person, MediaType mediaType, HttpOutputMessage httpOutputMessage) throws IOException, HttpMessageNotWritableException {
OutputStream body = httpOutputMessage.getBody();
String data=person.getName()+";"+person.getAge()+";"+person.getCat().getName();
body.write(data.getBytes());//自定义写操作的规则
}
}
2.容器中添加一个 WebMvcConfigurer,然后在重写extendMessageConverters
@Bean
public WebMvcConfigurer webMvcConfigurer(){
return new WebMvcConfigurer() {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new myMessageConvert());//在原有的messageconvert列表中加入自定义的
}
}
}
3用postman发请求并在请求头设置接受类型为application/wang