2014-09-30 83 views
0

所以實例化一個基本的EJB創建不能用新

@Stateless 
@Local 
public class boo { 
... 
} 

該項目將是10年前使用的是靜態方法模式變成一個EJB模式寫了大量的業務邏輯廣口瓶中的EJB和REST服務。我的問題是上面的例子在潛在的數百個地方這樣實例化

boo = new boo(); 

這使我的生活變得很悲慘。由於EJB不會讓你做一個私有構造函數,有沒有辦法讓我可以使用NEW語句導致編譯器錯誤,這樣我們就可以更輕鬆地追蹤所有內容並將它們轉換爲bean注入?我有一個在773個地方實例化的類。

+0

如果你創建另一個構造函數的參數並刪除默認的空構造函數?它會顯示新的boo()發生在哪裏,對吧?!並在對象聲明中使用cdi @Inject – 2014-09-30 23:33:16

+1

這就是我們現在正在做的事情。我的問題是我們的開發團隊中有一半是離岸的,我們發現其中一些人在被告知不要之後使用新的。我想不出一種會阻止未來發展的模式。但是,當然,在編碼過程中,我們可以創建僞造的構造函數等,並刪除它們並移動到下一個類,等等。 – scphantm 2014-09-30 23:41:45

+0

好吧,我不明白。也許這是一個想法,使用一些工廠模式來防止'新'用法,但這種方式我不認爲有可能使用EJB – 2014-09-30 23:45:44

回答

1

您應該有能力暫時使它隱私幫助找到彙編錯誤。

此外,大多數IDE中都有工具可以讓您「查找用法」或「查找引用」。只需創建公共無參數構造函數,然後右鍵單擊構造函數名稱,然後選擇find命令。在Eclipse上,它簡稱爲「參考」。

0

彼此的辦法是,在eclispe打的public constructor

地方光標,然後按Ctrl+Shift+G,它會找到的constructor(參考)橫跨project使用。