在ClassPathXmlApplicationContext中指定spring xml文件的语法

时间:2014-12-01 17:56:53

标签: java xml spring spring-3

我试图找出在ClassPathXmlApplicationContext的构造函数中指定spring的XML文件的语法。根据语法,我不是指方法签名,而是实际的字符串

例如以下三项工作。

ApplicationContext context = new ClassPathXmlApplicationContext("com/anshbansal/alarm/alarm.xml");
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:alarm.xml");
ApplicationContext context = new ClassPathXmlApplicationContext("alarm.xml");

我用Google搜索并尝试查看Spring 3.1.0源代码。但是我在doResolvePlaceholders类的Spring中org.springframework.core.env.AbstractPropertyResolver方法后被卡住了。具体而言,我无法理解占位符如何解决这条路径。

任何人都可以分享字符串的语法是什么来指定xml文件吗?

修改

我的意思是指定spring xml文件路径的语法,就像在构造函数中一样。我不是指xml文件本身的语法。

1 个答案:

答案 0 :(得分:0)

好的,我现在明白了这个问题:-)。 PropertyResolver仅用于将环境值(或属性文件值)放入spring XML文件中,即:

<context:property-placeholder location="file:///some/path/file.properties"/>

然后在这个春天xml内解析它们,即:

<bean id="mailInviteMessage" class="org.springframework.mail.SimpleMailMessage">
    <property name="from" value="${mail.from}"/>
    <property name="subject" value="${mail.subject}"/>
</bean>

将spring XML放在类路径中并以标准约定命名(即beans.xml)是可取的。但是,您可以配置它将参数放入java调用,即

java -Dmy.parameter=/path/to/beans.xml ...

然后手动加载:

Context context = new FileSystemXmlApplicationContext(System.getProperty("my.parameter"));