Spring Boot 06 - 回顧 Spring Web + Spring Data 架構
前述幾章,一直跟著範例來寫,道理上都不難。在繼續講解其他功能之前,我們還是保險地把過去的資訊整理好,方便大家在此基礎上開支散葉。
最簡流程圖
graph TD;
application[一個有main function,而且有@SpringBootApplication 附註的class];
controller[所有@Controller附註的class會被轉成Http Servlet];
repository["所有繼承 CurdRepositry 或 JpaRepository 的Interface"];
repoInstance["CurdRepositry 或 JpaRepository 的實例"];
entity["含有@Entity附註的class"];
businessLogic["程序員根據業務需求,以某個方式生成、更新、刪除Entity的實例,並經過 JpaRepository 寫到資料庫中"];
dbTable["資料庫Table(表)"];
SpringBootServletInitializer[一個繼承SpringBootServletInitializer的class];
application-->|自動偵測|SpringBootServletInitializer;
SpringBootServletInitializer-->|自動設定|controller;
application-->|自動偵測|repository;
controller-->|引用實列|repoInstance;
repository-->|"一對一操作 (Save, Delete, Find)"|entity;
repository-->|自動設定|repoInstance;
businessLogic<-->|讀寫|dbTable;
controller-->businessLogic;
repoInstance-->businessLogic;
entity-->businessLogic;
@Controller會自動生成http endpoint,@Entity則會對應生成資料庫的表。我們可以在任何Class中,包括Controller,經過自動註冊,叫Repository去記錄@Entity。
在Spring中,@Service,@Bean都被。
controller, service, test what,
inheritance?
no test if inheritance?