我如何在春季阅读application.properties?

时间:2015-03-20 10:23:14

标签: spring javabeans

问题与Spring有关。我的项目中有application.properties个文件。我希望在我的服务类中使用这些值。我可以在服务类中将这些属性值作为bean获取吗?

class MyServiceClass{
    @Autowired
    Properties myproperty;

    // ....
}

我希望能够使用myproperty。应该对配置进行哪些更改,以便将application.properties与我的服务类连接起来?

2 个答案:

答案 0 :(得分:0)

你可以将它们注入你的bean:

 @Value("${name}")
 private String someConfiguration;

答案 1 :(得分:0)

不确定我是否完全理解这个问题。我想你想要访问道具文件中的键和值?如果是这样,也许这会有所帮助:

<bean id="mapProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="ignoreResourceNotFound" value="true"/>
    <property name="fileEncoding" value="UTF-8"/>
    <property name="locations">
        <list>
            <value>classpath:application.properties</value>
        </list>
    </property>
</bean>

<bean id="myMap" class="com.google.common.collect.ImmutableMap" factory-method="copyOf">
    <constructor-arg ref="mapProperties"/>
</bean>

现在您可以像平常一样访问bean中的myMap:

@Autowired
private ImmutableMap<String, String> myMap;

此示例使用guava ImmutableMap,但您可以使用HashMap或其他任何内容。