天天看點

【springBoot】springBoot 學習筆記

原因如下:

分别定義接口和實作類是java架構思想中的開閉原則(擴充開發,修改關閉)的展現,例如:

假如你這個注冊剛開始是對國内使用者開放,中國使用者注冊成功傳回“注冊成功”,随着業務擴充,需要海外使用者開放,假如美國使用者傳回“register success”,如果你有接口,可以再美國的americauserserviceimpl.java中實作一個userservice.java的接口,來定義美國使用者的注冊業務,而不是在之userserviceimpl.java中增加if else來對不同邏輯進行處理,這樣,後續如果某個地區的注冊業務有變動,隻需要修改對應地區的實作類,修改不會影響到其他地區的實作類,降低了耦合性。

那是不是所有的項目都應該用到這樣思想呢?

對于小型項目來說,确實可以不用多寫一個接口,直接寫實作類就可以了。

接口+實作類是一種良好的編碼習慣而已。就好像寫代碼時候的縮進和駝峰命名法。

為什麼要用service接口?是讓表示層不依賴于業務層的具體實作。為什麼要用dao接口?是讓業務層不依賴于持久層的具體實作。舉個例子,用dao接口,那麼持久層用hibernate,還是用ibatis,還是 jdbc,随時可以替換,不用修改業務層service類的代碼。

不用接口的話,假如修改了dao中的代碼,因為service引用了dao中的類,那麼也要改變service裡面的代碼,改完之後要重新編譯運作,當項目比較大的時候,編譯和運作很浪費時間的,而且會産生一些意外,本來隻要編譯dao中的代碼,現在不光要編譯dao中的代碼,還要編譯service。因為你不用接口,間接着action裡的代碼也要改,因為action中引用了service中的類,到最後,就變成了,牽一發而動全身。

為什麼要寫imp實作類呢,是因為後期維護的時候如果要修改功能隻需要修改實作類裡面的那個代碼,而不需要修改其他包的代碼。

@requestmapping 和 @getmapping @postmapping 差別

@getmapping用于将http get請求映射到特定處理程式的方法注解

是一個組合注解,是@requestmapping(method = requestmethod.get)的縮寫。

@postmapping用于将http post請求映射到特定處理程式的方法注解

是一個組合注解,是@requestmapping(method = requestmethod.post)的縮寫。