【发布时间】:2012-05-24 22:03:05
【问题描述】:
是否可以从 java 属性文件中获取常量?我正在尝试开发我的应用程序,以便我可以在主属性文件中设置一个标志,指示应用程序是使用开发配置文件还是生产配置文件。
大多数应用程序工作正常,但我在实体类中的数据库表映射遇到了一些障碍。我使用的是 Dynamo DB,所以实际的类本身需要如下注释:
@DynamoDBTable(tableName = "table_name")
public class EmailTemplates {
...
tableName 值必须是一个常量,我正在尝试使用以下内容从属性文件中检索值并将其传递给 tableName;
@DynamoDBTable(tableName = DynamoTable.TABLE_NAME)
public class EmailTemplates {
...
DynamoTable 类:
public final class DynamoTable {
public static final String TABLE_NAME = ResourceBundle.getBundle(ResourceBundle.getBundle("ProjectStage").getString("ProjectStage")).getString("EmailTemplates");
}
不幸的是,它不起作用,因为它说值不是常数。如果我简单地输入一个文字字符串(即“aStringValue”),那么它很好,但不是来自属性文件。
注意。需要明确的是,上述代码从属性文件中检索值没有问题。问题是它没有被视为常量。
【问题讨论】:
-
@Jeffrey 抱歉,我已将问题添加到帖子末尾。
-
你说需要为生产和开发定义不同的属性文件。我不知道为什么你需要让表名变量,不是有一个单独的生产数据库和开发数据库,你不能玩连接字符串而不是改变表名吗?
-
技术上是的。但 DynamoDB 是亚马逊的 NoSQL 数据库,与使用关系数据库略有不同。
标签: java properties constants