使IntelliJ知道属性文件

时间:2015-02-06 12:13:47

标签: java spring intellij-idea properties-file

有没有办法告诉IntelliJ特定的.properties文件将被加载到项目的环境中?我们使用@PropertySource注释来加载属性文件,并在几个地方加载由已配置属性确定的文件中的覆盖值,如下所示:

@Configuration
@PropertySource("classpath:com/example/package/db.properties")
@PropertySource("classpath:com/example/package/db.${db.instance}.properties")
public class DatabaseConfig {
    private @Value("${db.someProperty}") String someDBProperty;
    // ...
}

问题是在这些间接引用的文件中的一个,例如db.test.properties,IntelliJ不知道是否/如何引用属性文件,因此它不能将任何条目与其用法绑定。 (奇怪的是,这些文件中列出的某些属性不会显示为“未使用的属性”,但即使这些也没有为“查找用户”搜索提供任何结果。直接命名文件没有问题,例如上面db.properties

有没有办法告诉IntelliJ这些文件是否创建了引用它们的额外虚拟@Configuration文件?

3 个答案:

答案 0 :(得分:4)

我就是这样做的:

  • 从项目浏览器中,我右键单击src / main / resources,我将鼠标悬停在“Mark Directory As ...”上,然后点击“Resources Root”

enter image description here

  • 在Spring配置中,我只是直接指定属性文件的名称。

这是我在其中一个项目中执行此操作的示例: https://github.com/SFRJ/springpractice/blob/master/src/main/java/part3/PropertiesLoaderConfiguration.java

顺便说一下,如果你使用多个属性源,你也可以这样做:

@PropertySources({
        @PropertySource("a.properties"),
        @PropertySource("b.properties")
    })

答案 1 :(得分:3)

Just look at this picture

这可以在项目结构中设置。看看这个捕获。

答案 2 :(得分:1)

在项目中创建一个名为res的文件夹,并将必要的属性文件保留在该文件夹中。转到Project_Structures-> Modules,然后选择选项卡Resources。在您的代码中,您可以使用路径res/your_file_name访问资源文件。

在将该文件夹标记为资源文件夹之前 enter image description here

将文件夹标记为资源文件夹后 enter image description here