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?