在aplicationContext.xml Spring文件中存储自定义属性

在aplicationContext.xml Spring文件中存储自定义属性,spring,properties,Spring,Properties,我需要为使用spring框架的web应用程序存储一些配置参数 通常我会使用configurationfile.properties文件,但我想知道是否可以将该值存储在applicationContext.xml文件中 一种解决方法是创建一个JavaBean类来存储这些值,并使用spring构建该类,如下所示: <bean id="configurationBean" class="mypackage.someClass"> <property name="confValue1

我需要为使用spring框架的web应用程序存储一些配置参数

通常我会使用configurationfile.properties文件,但我想知道是否可以将该值存储在applicationContext.xml文件中

一种解决方法是创建一个JavaBean类来存储这些值,并使用spring构建该类,如下所示:

<bean id="configurationBean" class="mypackage.someClass">
 <property name="confValue1">
   <value>myValue1</value>
 </property>
 ....
</bean>

myValue1
....
但我想知道是否有一种方法可以存储这些参数而不需要创建那个类

提前谢谢


我认为适合我的需求的最佳解决方案是使用java.util.Properties实例作为Springbean


谢谢大家。

Spring内置了在应用程序上下文XML中指定属性的支持。请参阅Spring参考文档的一部分。

我认为使用Spring的PropertyPlaceHolderConfigure可以获得最佳结果,它允许您将常规.properties文件中的值映射到bean上定义的属性


该示例演示了如何直接在javax.sql.DataSource实例上设置JDBC连接属性,从而消除了对中间“配置bean”的需要。

这应该使用以下语法

<bean id="props" class="java.util.Properties" >
    <constructor-arg>
        <props>
            <prop key="myKey">myValue</prop>
            <prop ...>
        </props>
    </constructor-arg>
</bean>

我的价值
您正在利用java.util.Properties有一个复制构造函数来接受Properties对象这一事实


我这样做是为了一个HashSet,它也有一个复制构造函数(HashMaps和ArrayList也是如此),并且它工作得非常好。

最好的方法是使用spring PropertyPlaceHolderConfigure

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:yourconfigurationfile.properties</value>
        </list>
    </property>
</bean>

谢谢你的回复。但我希望避免创建一个POJO对象来存储属性。我阅读了您提供的链接,我可以指定属性,但总是在一个定义元素中,这样就可以将bean与一个POJO类链接起来。所以您希望实际的是java.util.properties的实例吗?这就是我要搜索的。谢谢:)谢谢你的回答。您的解决方案看起来不错,但我不想创建一个单独的.properties文件,而是只将属性值存储在appContext.xml文件中,并在Java代码中访问它们。然后您希望参考提供的链接标记。它显示了如何在XML中声明java.util.Properties的实例:administrator@example.org support@example.org development@example.org@HyLian您不能将任意属性(看起来像.properties文件)放在XML文件中。您要么遵循XML结构(如上面提到的@brd6644),要么将其放在一个单独的.properties文件中,如他在post.ApplicationContext app=new ClassPathXmlApplicationContext(“app.XML”)中所述;System.out.println(app.getBean(“props”);结果是{}。你知道怎么解决这个问题吗?
<bean id="configurationBean" class="mypackage.someClass">
    <property name="confValue1">
        <value>${myvalue1}</value>
    </property>
    ....
</bean>  
myvalue1= value1