扩展spring的配置以保存自定义xml设置

时间:2011-12-17 20:07:41

标签: java spring configuration

我的servlet.xml文件包含我的所有Spring配置相关信息,如datasource bean等。

<bean id="..." class="...">
</bean>

现在我的应用程序有其他设置需要保存在配置文件中,是否可以在此处创建我自己的设置或者有更好的方法吗?

我想要的东西加载一次,并且在我的项目中很快引用。

我需要这个来存储一些文件路径,以及mongodb等的其他数据库设置。

1 个答案:

答案 0 :(得分:2)

您可以使用.properties文件:

<context:property-placeholder location="file:///my/cfg.properties"/>

如果文件内容是:

driver=com.mysql.jdbc.Driver
dbname=mysql:mydb
mysetting=42

您可以在Spring XML中引用它们,如下所示:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 <property name="driverClassName"><value>${driver}</value></property>
 <property name="url"><value>jdbc:${dbname}</value></property>
</bean>

参考:4.8.2.1 Example: the PropertyPlaceholderConfigurer

您也可以将这些属性注入您自己的类中:

@Service
public class MyService {
    @Value("${mysetting}")
    private int mysetting;  //Spring will inject '42' on bean creation

    //...
}

当然,如果您更喜欢XML,也可以像DriverManagerDataSource一样使用setter-injection。

另请参阅:Spring 3.1 M1: Unified Property Management