@Autowired
Constants constants;//in every class that needs constant
//...
constants.getArticleLimit()
Constants.ARTICLES_LIMIT //static var version
package org.simpletest.utils
import org.apache.log4j.Logger;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Constants {
private static final Logger LOG = Logger.getLogger(Constants.class);
public static final int ARTICLES_LIMIT;
public static final String PROPERTIES_LOCATION = "constants.properties";
static {
Properties p = new Properties();
//default values
int articlesLimit = 10;
Class<?> clazz = Constants.class.getClass();
ClassLoader cl = clazz.getClassLoader();
//try to load from properties file
try(final InputStream is = cl.getResourceAsStream(PROPERTIES_LOCATION)){
p.load(is);
articlesLimit= Integer.parseInt(p.getProperty("articleslimit"));
} catch (IOException e) {
LOG.debug(String.format("Unable to load {0} properties file. Getting constants by default values.",PROPERTIES_LOCATION),e);
}
ARTICLES_LIMIT = articlesLimit;
}
}
经过一些测试,这就是问题所在:
System.out.println(Constants.class.getClass());
这将打印java.lang.class
,而ClassLoader可能没有加载这些文件。这是因为someclass.class
的类是java.lang.class
。
移除getclass()
,Classloader将不会为空。不需要clazz
变量。这应该是您所需要做的一切:
ClassLoader cl = Constants.class.getClassLoader();
问题内容: 我在Java中使用常量文件和属性文件之间有些困惑。 如何决定何时使用 Constants.java 和何时使用 .properties 文件? 问题答案: 当 您不希望 用户/部署者/测试者/测试更改它们时, 请 在Java代码中使用固定的常量。 如果确实希望 这样 做, 请使用属性文件。 关键是要更改应用程序源代码中的固定常量,就需要编辑源代码,重新构建和重新部署。相比之下,更改属性
问题内容: 我为该标题表示歉意。我找不到更好的方法来解释这种情况。 我使用URL http://www.exampledepot.com/egs/java.util/Props.html中所述的Property类加载属性文件。 我的问题是我可以在该属性文件中使用属性吗? 例: test.properties 其他语法有可能吗? 谢谢 问题答案: 以前从未见过。您当然 可以 制作自己的预处理器。只要
问题内容: 我是Spring框架的新手。在我的Spring应用程序中,有一些细节,如下所述,这些细节需要在属性文件中维护。 在我的控制器中,有一个如下操作。 根据请求参数 提供者, 我需要获取相关的交易类型ID。例如,如果提供者为 TXT_CCO ,则事务类型id应为 70001 。 有人可以帮我实现这个目标吗 问题答案: 我会说你有2个选择 使用加载属性 使用和抽象。 使用 要简单地加载属性文件
嗨,我正在使用Spring4.3.7、Java8和Spring boot,我的要求是我有两个属性文件一个在类路径内部,另一个在外部。我两个都装上了。使用 两个文件的输入值将几乎相同,例如文件命名约定或文件创建位置(除了db详细信息和很少其他令牌详细信息),所要做的是,如果外部属性文件存在,则从它读取属性值,或者从类路径中的一个读取属性值。通过Spring Boot中的任何注释,这是可能的吗?
我有一个实用工具类,其中我有一个方法,它需要用户名和密码来连接其他URL。我需要将用户名保存在属性文件中,这样我就可以随时更改它。但当我在静态方法中使用它(作为实用程序类)时,问题是它显示为空(即它不能从属性文件中读取)。 但当我在其他控制器中输入这些值时,它们就会到达那里。所以我的问题是如何读取静态字段中的属性值
问题内容: 给定以下格式( .properties 或 .ini ): 对于 Java ,提供了Properties类,该类提供了用于解析上述格式或与其进行交互的功能。 python 的 标准 库(2.x)中有类似的东西吗? 如果没有,我还有什么其他选择? 问题答案: 对于.ini文件,有一个ConfigParser模块,它提供与.ini文件兼容的格式。 无论如何,没有任何可用于解析完整的.pro