【发布时间】:2016-03-02 12:13:32
【问题描述】:
在 spring 4 应用程序中,我创建了两个 bean,如下所示:
<!-- schemaFactory-->
<bean id="schemaFact" class="javax.xml.validation.SchemaFactory"
factory-method="newInstance">
<constructor-arg value="http://www.w3.org/2001/XMLSchema" />
</bean>
<!-- schema -->
<bean id="schema" class="javax.xml.validation.Schema"
factory-bean="schemaFact" factory-method="newSchema">
<constructor-arg value="classpath:/configs/sample.xsd" />
</bean>
一个生成模式工厂,另一个使用工厂(针对 xsd 验证 xml)。
在代码中:
public class example {
@Inject
private Schema aschema;
......
private validate(){
Validator validator = aschema.newValidator();
validator.validate(xmlFile);
}
}
这很好用,但我想知道是否可以以我们不需要单独定义工厂 bean 的方式编写这个 spring.xml(并且最后有一个更简单的 spring.xml)。如您所见,我只需要将schema bean 注入到我的example 类中,而schemaFact 则根本不需要。
【问题讨论】:
-
为什么不使用 Java 配置并删除 XML?
标签: java spring javabeans spring-4