Spring有一个非常方便的便捷类,称为PropertyPlaceholderConfigurer,它使用标准的.properties文件并将其值注入到bean.xml配置中。
有谁知道一个类做的事情完全相同,并且以相同的方式与Spring集成,但是接受XML文件作为配置。具体来说,我正在考虑Apache摘要格式的配置文件。这样做很容易,我只是想知道是否有人已经拥有了。
有什么建议吗?
我刚刚测试了它,它应该可以正常工作。
PropertiesPlaceholderConfigurer包含setPropertiesPersister方法,因此您可以使用自己的PropertiesPersister子类。默认的PropertiesPersister已经支持XML格式的属性。
只是为了向您展示完整的代码:
JUnit 4.4测试用例:
package org.nkl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ContextConfiguration(locations = { "classpath:/org/nkl/test-config.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class PropertyTest {
@Autowired
private Bean bean;
@Test
public void testPropertyPlaceholderConfigurer() {
assertNotNull(bean);
assertEquals("fred", bean.getName());
}
}
弹簧配置文件 test-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
">
<context:property-placeholder
location="classpath:/org/nkl/properties.xml" />
<bean id="bean" class="org.nkl.Bean">
<property name="name" value="${org.nkl.name}" />
</bean>
</beans>
XML属性文件properties.xml
-
有关用法的说明,请参见此处。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="org.nkl.name">fred</entry>
</properties>
最后是bean:
package org.nkl;
public class Bean {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
希望这可以帮助…
问题内容: Java中是否有类似于该接口的接口,可以接受其call方法的参数? 像这样: 如果已有已经可以使用的东西,我宁愿避免创建新的类型。还是有更好的策略让多个客户端实现并插入可调用例程? 从此处复制http://www.programmingforums.org/thread27905.html 问题答案: 从Java 8开始,软件包中提供了一整套类似于函数的接口。您要的具体要求很简单。 在
声明函数以映射值并在存在值时使用它们是很方便的。 在您有几个强制对象和几个可选对象的情况下,我发现自己将其他对象包装为可选对象。也可以使用(mandatoryObject),这样我就可以在它们上使用相同的表达式,而不必全部倒写。 但是我不喜欢这个代码: 所以我把它包装起来: 但这是错误的,因为蔬菜(在这个例子中)实际上不是可选的。它们非常重要,我只是给每个人的印象是它们是可选的。 所以我的问题是:
问题内容: 我喜欢整个WMI概念,并且可以在Linux(在某些脚本中)中真正使用它。Linux系统有类似的东西吗? 问题答案: 并不是的。您是否正在使用WMI获取系统参数,查询过程,更改配置或监视系统事件,等等? 内核通过和文件系统公开了许多信息和可调旋钮。没有查询语言,只有目录和文件的组织层次结构。其中一些文件是只读,读写或只写的。其中一些人有能力。 有些服务可能具有动态自定义客户查询和更新配置
问题内容: 我被迫将JUnit3用于特定的测试套件。我的理解和服务的功能和,但有一个模拟和对事情应该发生一次测试开始之前,一旦所有的测试运行后? 问题答案: 好的,我应该搜索得更好。 Junit 3中的班级拆解?
问题内容: 我想进行一些屏幕抓取,理想情况下使用CSS选择器而不是XPath。是否有类似于Ruby或Python的库? 问题答案: 有十二个用Java编写的屏幕抓取库。仅举几例: * TagSoup-一种用Java编写的,与SAX兼容的解析器,而不是解析格式正确或有效的XML,而是对HTML进行解析,而这种HTML经常在野外发现:令人讨厌和粗暴,尽管通常情况很短。TagSoup是为需要使用某种合理
Mac OS X和iOS有一个名为的不错的小类。它是一个单例,可让您存储字符串、数组和原语,并且您始终可以实现一些方法来向其添加自定义对象。当您需要存储快速设置而无需处理文件操作(例如,存储最后选择的字体名称)时,它非常有用。 Java有类似这样简单的东西吗?我希望能够存储用户的最后设置,以便在程序重新加载时重新加载类似的状态,但我不确定在Java中最好的方法是什么。