1. 程式人生 > >Spring boot框架專案,elAdmi的大體流程

Spring boot框架專案,elAdmi的大體流程

1. 前後端使用雙向json資料格式傳輸

2.請求->Controller ->Service(Service提供介面,具體對應實現類,)->Repository (代表DAO層,實現JAP 的repository介面,通過自動JPA,實現常用方法的自動配置。)

3.JPA裝載配:與資料庫結合,【domain層】對應資料庫中的表結構,通過@Entity註解+@Table 實現 實體類和資料庫表的對應,同時在實體類中使用

@OneToOne @OneToMany @ManyToMany 實現表與表之間的對應關係,JAP根據這些註解生成關聯sql

4.為了便於資料的轉化【前端資料到後臺的轉換,後端資料到前端資料的轉化】,使用DTO便於業務資料傳輸。MapStruct

實現需求,在編譯期間生成對應的程式碼,在執行的時候和一般的程式碼一樣,沒有額外的效能損失。 MapStruct 使用 @Mapper註解 實現 Entity和DTO的相互轉化。

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

lombok的使用,主要提供一些簡化程式碼的註解

/**
 *         @Data   :註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
 *
 *         @Setter:註解在屬性上;為屬性提供 setting 方法
 *
 *         @Getter:註解在屬性上;為屬性提供 getting 方法
 *
 *         @Log4j :註解在類上;為類提供一個 屬性名為log 的 log4j 日誌物件
 *
 *         @NoArgsConstructor:註解在類上;為類提供一個無參的構造方法
 *
 *         @AllArgsConstructor:註解在類上;為類提供一個全參的構造方法

            一般情況下使用@Data 即可
*/