我们正在使用@PropertySources
. 现在我想@Aspect
基于属性启用/禁用。我尝试使用@ConditionalOnExpression
which 不起作用。我通过创建一个propertyplaceholderconfig
. 即使在相同的情况下,它也不起作用。然后我尝试@profile
了最初也没有工作。
我想出的是,这些变量在启动时propertysource
或propertyplaceholder
在启动时使用 bean 时并未初始化。某些变量总是被忽略,例如(logging.file)。但@Value
工作正常。为了设置这些变量,我必须将它们作为 JVM 参数传递。
所以我的问题是:
1. 如何让 spring 在启动时始终读取指定的属性文件并尊重所有这些文件?
2.这是启用/禁用的最佳方式@Aspect
。使用@profile
or@ConditionalOnExpression
还是别的什么?
目前,我们logging.file
在 main 方法中进行设置,因为它的行为方式也相同。但是你们知道这不是正确的方法,因为我最终可能会像这样一个一个地添加属性。我想将所有属性放入外部文件中,以便 spring 读取这些文件并设置其属性。
我们的物业结构:
common.properties #这个有所有通用属性
service.properties #特定于服务的属性。这还将包含来自 common.properties 的现有属性,这些属性将被覆盖。
我知道我可以使用个人资料。但是,我们希望将属性保留在外部,如果您要更改属性,则需要重新启动服务。我也不想将变量作为 JVM 参数传递,然后我必须以这种方式传递大部分变量。传递 -Dspring.config.location 也很困难,common.properties
因为service.properties
每个服务都使用了“service.properties”文件名。
料青山看我应如是
相关分类