一、Controller层
注意url命名规范,以及post、put、get和delete四类请求的区别。
二、Domain实体类层
@JsonIdentityReference(alwaysAsId =true)根据Id序列化属性,用于多对一,构造函数需要@JsonProperty注解一个根据id解析对象的构造方法。
@Transient注解用于创建一个临时的属性列,非持久化,不保存在数据库。
三、Server服务层
@EnableScheduling注明这是一个定时类,@Scheduled()注明定时方法,()里可以设定定时规则。
四、Dao层
@Query()编写查询语句时可以查询后new一个需要的对象。
五、Service层
编写具体业务逻辑,注意算法优化,最少数据库访问次数,最少循环次数,什么时候可以空间换取时间,充分利用HashMap处理数据。
Specification动态查询,其中关联表查询方式,如:
jdbc.batchUpdate()实现批量操作。
六、遇到的问题
1、在多对一属性里,需要@JsonProperty来注解一个构造函数,否则后台无法根据前台传递的ID来解析对应的对象。
2、必要时利用@Transient简化业务逻辑。
3、dao层查询数据时参数尽量不为null。
4、利用数据结构减少for循环和if判断,增加代码可读性及减少潜在的bug。
5、HTTP请求:①、POST /url 创建 ②、DELETE /url/xxx 删除 ③、PUT /url/xxx 更新④、GET /url/xxx 查看