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

标签 java spring configuration

我的 servlet.xml 文件包含所有与 spring 配置相关的信息,例如数据源 bean 等。

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

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

我想要一些加载一次并且可以在我的项目中快速引用的东西。

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

最佳答案

您可以使用.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 .

您还可以将这些属性注入(inject)到您自己的类中:

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

    //...
}

当然,如果您更喜欢 XML,您也可以使用 setter 注入(inject),就像示例中的 DriverManagerDataSource 一样。

另请查看:Spring 3.1 M1: Unified Property Management .

关于java - 扩展 spring 的配置以保存自定义 xml 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547599/

相关文章:

javascript - 在前端应用程序中放置配置选项的最常见方法是什么?

java - 获取列表中出现多个的值?

java - Google Drive InputStreamContent 需要设置长度

java - 使用 Spring Scheduler(Vaadin Chat 和 Spring Boot)

spring jndi数据源设置

configuration - 如何通过一个端口为 Jetty 提供 https 和 http 服务

java - 使用 Java Spring Boot 创建 MySQL JSON 列

java - 更高效的解决方案 : Project Euler #2: Even Fibonacci Numbers

java - 由于 NoSuchProviderException smtp 无法发送电子邮件

.net - ConfigurationManager.AppSettings 为空?