Мое приложение в настоящее время запускает Gson вместо jackson, как использовать gson для анализа входящей формы submit?Весенняя обувь - gson singleton?
я в настоящее время получить
2015-10-26 14: 14: 59,027 ОШИБКА 12876 --- [NiO-8080-Exec-1] com.exp.controllers.UserController: объект Bean не должен быть ноль; вложенное исключение java.lang.IllegalArgumentException: объект Bean не должен быть пустым
@RestController
public class UserController {
@Autowired
private UserDao userDao;
@Autowired
private GsonHttp gsonHttp;
private final Logger log = LoggerFactory.getLogger(this.getClass());
@RequestMapping(value="/createPOST", method = RequestMethod.POST)
@ResponseBody
public ResponseData createPOST(String json) {
User user = null;
try {
user = gsonHttp.getGson().fromJson(json, User.class);
userDao.save(user);
}
catch (Exception ex) {
log.error(ex.getMessage());
return new ResponseData(false, Arrays.asList("Error with user creation."));
}
return new ResponseData(true, Arrays.asList(user));
}
}
с этим:
@Repository
public class GsonHttp {
private Gson gson;
public GsonHttp(){
this.gson = new Gson();
}
public Gson getGson() {
return gson;
}
public void setGson(Gson gson) {
this.gson = gson;
}
}
Почему вы пытаетесь сопоставить все это вручную? Если у вас есть подходящие конвертеры (которые Spring Boot должен добавить для вас, если Gson находится в пути к классам), вы можете объявить пользователя '@ModelAttribute User user 'как параметр, и все это автоматически. – chrylis
Что происходит, когда вы меняете GsonHttp на аннотацию @Component? Также часто такие общие классы, как GsonHttp, помещаются в общие пакеты. Но для того, чтобы быть автообновленным, он должен находиться в субпакете вашей основной конфигурации приложения. – Zergleb