有没有办法告诉 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 不知道属性文件是否/如何被引用,因此它无法将任何条目与其用法联系起来。 (奇怪的是,some这些文件中列出的属性不会灰显以指示“未使用的属性”,尽管即使这些属性也不会为“查找用法”搜索提供任何结果)。直接命名的文件没有问题,例如db.properties
above.
除了创建额外的虚拟文件之外,是否有某种方法可以告诉 IntelliJ 这些文件@Configuration
引用它们的文件?
我就是这样做的:
- 在项目资源管理器中,我右键单击 src/main/resources,将鼠标悬停在“将目录标记为...”上,然后单击“资源根目录”
- 在 Spring 配置中,我直接指定属性文件的名称。
这是我在我的一个项目中执行此操作时的一个示例:https://github.com/SFRJ/springpractice/blob/master/src/main/java/part3/PropertiesLoaderConfiguration.java https://github.com/SFRJ/springpractice/blob/master/src/main/java/part3/PropertiesLoaderConfiguration.java
顺便说一句,如果您使用多个属性源,您也可以执行以下操作:
@PropertySources({
@PropertySource("a.properties"),
@PropertySource("b.properties")
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)