你好,春秋彩票娛樂平臺的粉絲/專家,
。希望你過得很好。我在這個問題上糾結了很久,我想我應該向spring/springboot專家請教他們的意見和經驗。這是一個關于界面的問題,因為它與springboot中的使用有關。
首先讓我說一下;從Java或軟體工程的角度來看,我理解并清楚地知道介面的用途或目的,它們是合約。
因此,從 springboot 作為一個框架/庫的角度來看,它在框架源代碼中是有意義的。
現在,從springboot作為應用的角度來看,我看到的情況是每個服務類(@Service)都有一個相應的介面:
public interface MyService{}。
public class MyServiceImpl implement MyService {}。
99.99%的時候,這些介面從來沒有被其他東西實作過。為什么這在springboot中變得如此流行,每一個服務類都有一個相應的介面,盡管沒有其他東西會實作這些介面?
對我來說,這似乎創造了更多的復雜性和需要維護的代碼,卻沒有明顯的好處。請注意,我嚴格指的是@Service類介面。
這樣做是好的做法嗎?我在這里是否遺漏了什么。您在這方面有什么經驗和想法嗎?
提前感謝您。
提前感謝您!
uj5u.com熱心網友回復:
這種模式確實在相當多的教程和在線資源中被使用,但我認為它已經相當過時了。在XML時代,你沒有配置類這樣的東西,所以配置Bean的主要方式是一個XML條目,并為合作者提供公共設定器。由于您不希望在您的 API 中公開這一點,因此擁有一個宣告您的公共 API 的介面并由實作來處理它是有意義的。
在現代的 Spring 中,這種世界觀已經完全過時了,我們當然也不希望看到這樣的范式。建構式注入是現在的常態,在這種情況下,介面和其唯一實作之間的分離并不十分有用。
有人會說,他們不希望任何 Spring 注釋出現在公共 API 上,因此這仍然是一種用途。也就是說,如果你使用構造注入和顯式bean注冊,你就不需要任何依賴注入的注解。如果你對此有強烈的感覺,并使用額外的方面,如事務或快取,那么是的,如果你想從你的公共API中隱藏這些注釋,你就必須創建一個介面。
uj5u.com熱心網友回復:
在spring中,@Service通常負責特定的業務邏輯,而業務代碼通常包含大量的變化。所以它一般使用介面來實作。我不太明白為什么你的業務代碼總是空的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/307777.html
標籤:
上一篇:復制文本的宏,然后在MSWord上隱藏復制的文本,保持格式。
下一篇:如何讀取谷歌云存盤上的私人檔案
