1.由前->后:前端
1. 先后端使用双向json数据格式传输spring
2.请求->Controller ->Service(Service提供接口,具体对应实现类,)->Repository (表明DAO层,实现JAP 的repository接口,经过自动JPA,实现经常使用方法的自动配置。)sql
3.JPA装载配:与数据库结合,【domain层】对应数据库中的表结构,经过@Entity注解+@Table 实现 实体类和数据库表的对应,同时在实体类中使用数据库
@OneToOne @OneToMany @ManyToMany 实现表与表之间的对应关系,JAP根据这些注解生成关联sql
4.为了便于数据的转化【前端数据到后台的转换,后端数据到前端数据的转化】,使用DTO便于业务数据传输。MapStruct 实现需求,在编译期间生成对应的代码,在运行的时候和通常的代码同样,没有额外的性能损失。 MapStruct 使用 @Mapper注解 实现 Entity和DTO的相互转化。json
Mapper 只有在接口加上这个注解, MapStruct 才会去实现该接口 @Mapper注解的接口生成一个实现类 * uses 能够调用其余的Mapper,来转换复杂类型的字段 * componentModel = "spring" 和Spring框架结合 spring: 生成的实现类上面会自动添加一个@Component注解, * 能够经过Spring的 @Autowired方式进行注入,以本接口为例 * 在编译文件target中能够找到 * @Component * public class UserMapperImpl implements UserMapper{} * 的实现类 *所以 能够在使用的地方 经过@AutoWired的方式自动注入。
5.一些注解的使用后端
/**
* 在使用@Autowired时,首先在容器中查询对应类型的bean
*
* 若是查询结果恰好为一个,就将该bean装配给@Autowired指定的数据
*
* 若是查询的结果不止一个,那么@Autowired会根据名称来查找。
*
* 若是查询的结果为空,那么会抛出异常。解决方法时,使用required=false
*/
/**
* @Data :注解在类上;提供类全部属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
*
* @Setter:注解在属性上;为属性提供 setting 方法
*
* @Getter:注解在属性上;为属性提供 getting 方法
*
* @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
*
* @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
*
* @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
通常状况下使用@Data 便可
*/