2013-02-12 141 views
0

我有一個包含我的數據庫設置(用戶名,密碼)的java類。我想在我的插件的所有包中使用這個類,但我不希望它可用於其他插件。Java,其他包中的類可見性但不包含在其他插件中

我該怎麼做?刪除該類的public屬性會將其從所有其他包中隱藏,並將其公開給所有其他插件,這對我來說是不好的。

是不是有一些類似的關鍵字像受保護的函數和變量?

+3

您不應該在Java類中存儲用戶名密碼(不管它是什麼)。 – asgs 2013-02-12 06:50:50

+0

請檢查此答案以獲得可能的解決方案。 http://stackoverflow.com/questions/442862/how-can-i-protect-mysql-username-and-password-from-decompiling/442872#442872 – 2013-02-12 06:58:07

+0

它應該巧合地是一個OSGi或NetBeans插件 - 它們有一個模塊系統(OSGi:bundle),其中模塊級可以指定什麼是公共的,因此什麼不是。唯一的醜陋的竅門是使用自己的類加載器/工廠檢查調用者,並檢查數據源類是否使用了類加載器。它不會反對拆卸。 – 2013-02-12 06:58:41

回答

1

我該怎麼做?

而不是在類中具有憑據,創建一個配置文件,並在需要的類中使用它。

0

如果您的數據庫信息以純文本變量形式存儲,則設置的可見性無關緊要。任何有興趣的人都可以輕鬆找到這些字符

我不確定你在插入什麼,但是我用過的大多數平臺都有一種說明應該共享/隱藏哪些軟件包的方法。這將是特定於平臺(Netbeans的,Eclipse的,等...)

除此之外,如果你把你的類/變量protected那麼只有班相同packageextend它能夠使用它們。如果未設置可見性修飾符,則默認爲打包,並且使用僅限於同一包中的類。

相關問題