当前位置: 首页 > 面试题库 >

是否有类似Spring的PropertyPlaceholderConfigurer类用于接受XML?

沈运恒
2023-03-14
问题内容

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中最好的方法是什么。