我来自C#.NET世界,在构建我的Scala项目时,我注意到在开源社区中有多少不同的方法可以做。无论如何在.Net C#项目中我们有App.config
或List<MovieDetail> _mySearchDetail = _myMovie.Where(p => p.name == movietitle).ToList();
文件,它对于指定全局使用的应用程序密钥非常有用,并且对于不同环境等的转换也很有帮助。
Scala SBT项目的等价物是什么?您知道存储连接字符串和其他应用程序设置的位置吗?
答案 0 :(得分:4)
没有通用配置文件名。基本方法是使用Properties
,例如how to read properties file in scala,并调用文件your-application-name.properties
。但是我建议使用一个名为Config的热门图书馆;如https://github.com/typesafehub/config#standard-behavior所述,配置文件的标准名称是
便捷方法ConfigFactory.load()加载以下内容(首先列出的是更高优先级):
- 系统属性
- application.conf(具有此名称的classpath上的所有资源)
- application.json(具有此名称的classpath上的所有资源)
- application.properties(具有此名称的classpath上的所有资源)
- reference.conf(具有此名称的classpath上的所有资源)
这个想法是库和框架应该在他们的jar中附带一个reference.conf。应用程序应该提供application.conf,或者如果他们想在单个JVM中创建多个配置,他们可以使用ConfigFactory.load(“myapp”)来加载他们自己的myapp.conf。 (如果需要,应用程序也可以提供reference.conf,但是您可能没有必要将它与application.conf分开。)
正如@ ashalynd的回答所说,为了让任何此类库看到您的配置文件,它们应该进入src/{main,test}/resources
。
答案 1 :(得分:3)
我认为你在谈论application.conf
。它可以在/src/main/resources
或/src/test/resources
中找到(分别影响主要和测试设置)。如果application.conf
中不存在/src/test/resources
,则主application.conf
将用于测试。