我是一名新的 Java 开发人员,正在从事 ERP 项目。我浏览了项目的代码库,发现了一些有趣且相当复杂的编码结构。
整个应用程序是在纯JPA上开发的,很少使用Spring Boot自己的接口、注解和方法。例如,根本没有使用 JPARepository 接口。 @Repository 是这里的一个类,他们使用 Jackson 数据绑定进行增删改查操作。
例如,这是存储库类,
@Repository
public Response save(String empRegistration) {
JSONObject json = new JSONObject(empRegistration); // from android library
String empReg= Def.getString(json, "empReg");
EmpRegistration empRegistration = new EmpRegistration ();
empRegistration = objectMapperReadValue(empReg, EmpRegistration.class);
Response response = baseOnlySave(EmpRegistration); // baseOnlySave is the base save method written in pure JPA.
return response;
}
这是objectMapperReadValue方法
default <T> T objectMapperReadValue(String content, Class<T> valueType) {
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).readValue(content,
valueType);
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
// return null;
}
我基本上会做什么
Public Response save (Employee emp) { empRepository.save(emp); return response;}
所以,我的问题是,在 Spring Boot 中开发企业应用程序时,我们真的需要使用 JSONObject 和 objectMapper 类来保存对象吗?
可以使用
JSONObject
和 ObjectMapper
进行 CRUD 操作,尽管它通常被认为是效率较低且不易维护的方法,特别是在抽象、类型安全、可扩展性、性能和可维护性是关键问题的企业应用程序中。
您可能需要重新考虑该方法,因为在 Spring Boot 应用程序中直接使用 JSONObject 和 ObjectMapper 进行 CRUD 操作并不常见,尤其是当您可以访问
Spring Data JPA
和 Spring Boot 自动配置提供的强大功能时。
就您而言,重构代码以使用
Spring Data JPA
存储库并遵循 Spring Boot 的约定从长远来看可能会导致更干净、更高效且更可维护的代码。但是,在进行任何更改之前,您应该仔细评估项目的要求和限制。