属性文件中的Spring和Constants类

时间:2017-03-13 16:24:15

标签: java spring

我想创建带有公共静态最终字段的Constants类,我从Properties文件中获取它。 问题是ClassLoader始终为null ,我无法获取属性文件InputStream。

我正在使用Spring Java Configuration,我知道@PropertySource和@Value spring注释,但我认为旧式的Constants类在代码中更具可读性。

<!DOCTYPE html>
<html ng-app="app">

<head>
  <script data-require="angular.js@1.6.1" data-semver="1.6.1" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
  <script src="app.js"></script>
</head>

<body ng-controller="AppController as vm">
  
<div>
<select ng-model="vm.selectedYear"ng-options="year for year in vm.years">
</select>

</div>
  


</body>

</html>

vs simple

@Autowired
Constants constants;//in every class that needs constant
//...
constants.getArticleLimit()

这是我的代码:

Constants.ARTICLES_LIMIT //static var version

1 个答案:

答案 0 :(得分:1)

经过一些测试后,问题就出现了:

System.out.println(Constants.class.getClass());

这会打印可能未被类加载器加载的java.lang.Class。这是因为SomeClass.class的类是java.lang.class

删除getClass(),类加载器不会为空。不需要clazz变量。这应该是你需要做的全部:

ClassLoader cl = Constants.class.getClassLoader();