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 便可
*/