阅读完需:约 2 分钟
和jackSon
一样在springboot
里面gson
也不用配置直接导入依赖包就可以使用了,当如前提是要删除springboot
默认的jackSon
依赖
先删除jackSon
的依赖,找到pom文件,在里面清除依赖:

接着下面导入gson
的依赖:

不需要写版本号因为都在parent
里面了!
接着便是日常的创建bean类和配置文件了:

public class User {
private Integer id;
private String username;
private String address;
//中间省略set,get和toString
}
重点在于配置文件:
@Configuration
public class WebMvcController {
@Bean
GsonHttpMessageConverter gsonHttpMessageConverter(){
GsonHttpMessageConverter gson=new GsonHttpMessageConverter();
gson.setGson(new GsonBuilder().setDateFormat("yyyy/MM/dd").create());
return gson;
}
// @Bean
// Gson gson(){
// return new GsonBuilder().setDateFormat("yyyy/MM/dd").create();
// }
}
gson
和jackson
如果不配置也可以,因为有默认的GsonHttpMessageConverter
方法
源码在 GsonHttpMessageConvertersConfiguration.java
里:

和jackson
一样的道理会自动给你配置,但是如果你自己写了默认的便失效了!
同时我们还发现:
GsonHttpMessageConverter gsonHttpMessageConverter(Gson gson)
它是传递进来一个Gson
才生效的,所以我们也可以直接在外面写Gson
,源码在 GsonAutoConfiguration.java
里:

修改完后的配置代码:
@Configuration
public class WebMvcController {
// @Bean
// GsonHttpMessageConverter gsonHttpMessageConverter(){
// GsonHttpMessageConverter gson=new GsonHttpMessageConverter();
// gson.setGson(new GsonBuilder().setDateFormat("yyyy/MM/dd").create());
// return gson;
// }
@Bean
Gson gson(){
return new GsonBuilder().setDateFormat("yyyy/MM/dd").create();
}
}
@RestController
public class UserController {
@GetMapping("/user")
public List<User> getAllUser(){
List<User> users=new ArrayList<>();
for(int i=0;i<10;i++){
User user=new User();
user.setAddress("www.enmalvi.com");
user.setUsername("tiga"+i);
user.setId(i);
user.setBirthday(new Date());
users.add(user);
}
return users;
};
}
但是不管怎样结果是一样的:
