Spring 3.0 / 3.1を使用している場合は、Java構成を利用できます。
@Configuration
class Config {
@Bean
public SchemaFactory schemaFact() throws SAXNotSupportedException, SAXNotRecognizedException {
final SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
schemaFactory.setFeature("apache.org/xml/features/validation/schema-full-checking", false);
return schemaFactory;
}
@Bean
public Schema schema() throws SAXException {
return schemaFact().newSchema(new File("3DSecure.xsd"));
}
}
しかし、どのメソッドSchemaFactory
を呼び出しますか?それらはすべてゲッターまたはセッターのように見えるので、通常のXMLインジェクションを使用できます...または、独自に作成しますFactoryBean
。
class SchemaFactoryFactoryBean implements FactoryBean<SchemaFactory> {
@Override
public SchemaFactory getObject() throws Exception
{
final SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
schemaFactory.setFeature("apache.org/xml/features/validation/schema-full-checking", false);
return schemaFactory;
}
@Override
public Class<?> getObjectType()
{
return SchemaFactory.class;
}
@Override
public boolean isSingleton()
{
return true;
}
}
そして、このように使用します(factory-method
不要):
<bean id="schemaFact" class="SchemaFactoryFactoryBean"/>