原本今年打算研究一下springcloud,可是公司的项目一个接着一个,时间飞逝2019都已接近尾声,项目也都接近了尾声,终于可以研究一下自己喜欢的东西了。
直切主题:
浏览器请求Eureka接口默认返回的是xml原因是:
然后解决办法:
导入依赖:
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-xml-provider</artifactId>
</dependency>
如果不导入依赖,后台只支持后缀为json的请求地址,而不支持.xml
然后你去浏览器输入url会报404:
这样写后台肯定是将.后面的也当作实际路径了,所以报404,这时候我们需要配置一下 WebMvcConfigurer:
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
/**
* setUseSuffixPatternMatch : 设置是否是后缀模式匹配,如“/user”是否匹配/user.*,默认真即匹配;
* setUseTrailingSlashMatch : 设置是否自动后缀路径模式匹配,如“/user”是否匹配“/user/”,默认真即匹配
* @param configurer
*/
@Override
protected void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(true)
.setUseTrailingSlashMatch(true);
}
}
让他可以匹配后缀
给你们看下我得controller,我直接在启动类里面写的
@RestController
@EnableEurekaClient
@SpringBootApplication
@ComponentScan
public class Consumer2Application {
public static void main(String[] args) {
SpringApplication.run(Consumer2Application.class, args);
}
/**
* @return
*/
@GetMapping(value = "/ziDing")
public User getJX(@RequestParam Long id) {
User user = new User();
user.setId(id);
user.setFrom("自定义");
user.setUserName("张学伟i");
return user;
}
}
然后是请求效果图:
这种就是根据请求的url后缀决定返回格式,需要注意的是url后面加后缀而不是参数后面加后缀
====================================================================================
下面介绍如何指定返回固定格式
xml:
在controller上的RequestMapping中加上produce
@RequestMapping(produces = MediaType.APPLICATION_ATOM_XML_VALUE)
效果如下:
然后是json:
@RequestMapping(produces = MediaType.APPLICATION_JSON_UTF8_VALUE )
好了有疑问的小伙伴可以给我留言,基本上1天就会回复