Spring将所有属性存储在中Environment
。
Environment
包含的集合PropertySource
。每个都PropertySource
包含来自特定来源的属性。有系统属性和Java环境属性等。文件的属性也将在那里。
任何来源都有自己的名称。在您的情况下,自动生成的名称将如下所示"class path resource [sample.properties]"
。如您所见,该名称并不是很方便。因此,让我们设置更方便的名称:
@PropertySource(value="classpath:sample.properties", name="sample.props")
现在,您可以使用以下名称获取源:
AbstractEnvironment ae = (AbstractEnvironment)env; org.springframework.core.env.PropertySource source = ae.getPropertySources().get("sample.props"); Properties props = (Properties)source.getSource();
请注意,我指定了PropertySource
类的全名,以避免与@PropertySource注释类冲突。之后,您可以使用属性。例如,将它们输出到控制台:
for(Object key : props.keySet()){ System.out.println(props.get(key)); }