2017-10-28 92 views
0

Spring應用程序設計問題。我想寫一個實用程序Java庫,這將成爲我所有其他小應用程序的依賴項。我所有的應用都是基於彈簧的應用。在實用程序庫模塊中使用自動佈線是一種很好的做法。而這個實用程序庫需要從屬性文件中讀取幾個屬性。當使用此模塊的其他應用程序基於Spring時,我們將如何編寫我的通用實用程序庫?春天 - 設計實用程序模塊

+0

最好的做法是讓圖書館儘可能少地依賴於** - 理想上什麼都不要。如果您確實引入了依賴關係,請仔細考慮是否有必要,以及它會給圖書館消費者帶來什麼負擔。就我個人而言,我已經嵌入了Spring的庫 - 我更喜歡優秀的文檔,並且自己在Spring中配置它們。如果您決定,在經過了大量的思考之後,在庫中使用Spring可解決比創建更多問題 - 然後_please_使用Spring autoconf並要求用戶顯式啓用該庫的功能。 –

+0

查看[Spring文檔](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html)。 –

+0

你的庫將會與Spring無關(它不應該依賴於Spring依賴)。你最好編寫一個適配器來將庫與Spring應用程序綁定。 – Andrew

回答

1

如果可以幫助,我不會在實用程序庫上使用自動裝配。只要使用依賴關係反轉來延遲依賴關係的注入,直到實際使用該庫爲止。然後,您可以在客戶端應用程序中將其聲明爲一個bean,並使用自動裝配(如果您願意的話)。

屬性也是一樣,只需在相關的方法/構造函數中設置它們的參數,然後就可以使用每個客戶端應用程序的屬性文件來定義所需的任何屬性。

+1

是的,這個。如果每個人都這樣做,我會成爲一個更快樂的開發者!創建一個'接口MyLibraryConfiguration'並在ctor中接收它;如果用戶想要將它實現爲Spring bean並注入屬於它們的屬性。 –