簡體   English   中英

Java包/類庫約定?

[英]Java package / class library convention?

我是C#開發人員,並且在搞怪Java。 在C#中,我通常會擁有我的前端項目,然后當我需要在項目中添加另一層(即服務層等)時,我會在解決方案中添加一個類庫並為其添加引用。

Java中的約定是什么? 您是否將另一個Java項目添加到工作空間中,然后引用該項目? 還是將一個軟件包添加到包含前端的項目中?

更新

抱歉,我正在使用eclipse ...因此引用了“工作區”

沒有真正的約定。 當您說“工作區”時,您指的不是Java,而是開發環境(聽起來像Eclipse)。 有很多方法可以做到這一點。 您可以按照建議的方式進行操作,可以通過Maven包含依賴項,也可以將它們全部合並到一個項目中,依此類推。

選擇哪種取決於您的需求,還有誰會使用單個庫或已完成的項目,依此類推。

如何划分源代碼在很大程度上取決於項目的結構。 重要的是要注意一個好的代碼組織。 您應該在自己的程序包中保留用於常見任務或不同應用程序層的類。 您應該注意包間的依賴性。

使用不同的“項目”(Maven或Eclipse項目)有助於確保您(您的開發人員)不會違反結構邊界,因為編譯器會檢查依賴項(一個項目引用另一個項目,例如在C#/ VS中)。 Maven為每個項目生成一個構建工件(例如JAR文件)。

總而言之,我認為為每個程序模塊創建新的單獨項目是一個好主意,以便能夠顯式管理項目之間的依賴關系。

您似乎假設每個人都使用Eclipse(您對“工作區”的引用)。

您可以做任何您想做的事情,但是請記住,其他人可能無法為應用程序的各個組件包括“單獨的”項目。

您可以使用一些構建工具(ant,maven)為各種應用程序組件(例如數據模型,持久性,API等)構建適當的jar,從而輕松解決該問題。

如果您的前端是RIA,則將它作為一個單獨的項目進行開發可能會更有意義,盡管這不是必需的。 如果您的應用程序是某種Java驅動的UI,則仍然可以做任何您想做的事情,在兩種情況下,請確保UI組件具有自己的包層次結構。

與Java中的大多數東西不同,沒有關於如何拆分項目的真正約定。

以我的經驗,在一個項目中包含用於特定業務目的的代碼,並分離出您打算在多個項目之間共享的代碼,或者非特定於特定業務目的的代碼(例如,數據庫訪問)是有意義的,JMS庫等)合並到一個單獨的項目中。

是的,我想我會創建一個單獨的程序包。 因此,您的UI代碼可能在com.mycompany.app.ui ,服務代碼在com.mycompany.app.servicecom.mycompany.app.service 。但是,要組織類由您決定。 Java本身並不關心類所在的包。這些包僅有助於使開發人員更容易管理代碼。

我建議您可以使用netbeans,然后可以創建一個Java類庫,當您部署項目時,netbeans將為您生成jar文件,並將它們放置在正確的位置。我也是ms developer,希望它能對您有所幫助

如果UI和服務器層是在單個項目中開發的,這意味着將其打包和部署在同一個WAR文件中,那么我將為該服務創建一個新包,並根據需要添加類和接口。

如果服務層是單獨部署的,那么我會將依賴項作為JAR添加到Web項目中。 我需要的只是服務的客戶。

如果您在Eclipse中工作,請遵循以下步驟:

1)右鍵單擊項目,然后選擇“構建路徑”-“配置構建路徑...”

在此處輸入圖片說明

2)切換到“庫”選項卡,然后單擊“添加外部JAR”(如果已在工作區中,則單擊“添加JAR”)。

在此處輸入圖片說明

3)現在,您可以手動添加相應類的導入,或者只需按Ctrl + Shift + O(源組織導入),Eclipse就會為您完成這項工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM