2013-02-12 76 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它能够使用它们。如果未设置可见性修饰符,则默认为打包,并且使用仅限于同一包中的类。

相关问题