在一个模块'scheduler'类中,我需要使用来自模块的属性文件中的数据:后端,公共端实体 - 管理器(例如)。属性文件保存在(module)/ src / main / resources中。如何实现?
答案 0 :(得分:0)
以下是我能想到的两个选项:
1)在eclipse中,对于scheduler
模块,添加其他模块(例如backend
)作为依赖项(R-click on project> Build Path> Configure Build Path> Projects> Add )。这将在scheduler
classpath中添加已添加项目的类路径条目。如果您正在使用maven,则可能必须在scheduler
模块的pom.xml中将项目添加为内部依赖项。
2)通过将属性文件放在项目结构之外,文件系统的某个位置来外部化属性文件 - 例如在C:\properties
目录下。将此目录添加到使用属性文件的模块的项目类路径中。您可以在eclipse中执行此操作(R-click on project> Build Path> Configure Build Path> Libraries> Add Variable)。运行应用程序时,还要确保目录位于类路径中。如果您将其作为独立的Java应用程序运行,则在-cp
java
命令的开关中添加路径。如果您在任何容器中运行它,请将该目录添加到容器的类路径中。
答案 1 :(得分:0)
您可以使用ClassLoader轻松访问它们。
this.getClass().getClassLoader().getResourceAsStream("myproperties.properties");
这会将流返回到文件,即使该文件位于不同的jar文件中。
提醒:模块应该保持独立,尝试将代码更改为没有这种依赖关系。是否可以在调度程序初始化时设置necessery值而不是在调度程序本身中读取它们?