spring 加载解析bean
2019-12-29 本文已影响0人
清远_03d9
xml文件定义
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"
lazy-init="false">
<property name="dataSource" ref="dataSource" />
<property name="databaseSchemaUpdate" value="true"></property>
<property name="history" value="full"></property>
<property name="enableProcessDefinitionInfoCache"
value="true"></property>
<property name="customPreDeployers">
<list>
<bean
class="com.shareniu.activiti.a6.xmlext.deployer.ShareniuCustomPreDeployers"></bean>
</list>
</property>
</bean>
</beans>
类的定义
public abstract class ProcessEngineConfigurationImpl
extends ProcessEngineConfiguration {
protected DataSource dataSource;
public DataSource getDataSource() {
return dataSource;
}
public ProcessEngineConfiguration setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
return this;
}
protected String databaseSchemaUpdate = DB_SCHEMA_UPDATE_FALSE;
public String getDatabaseSchemaUpdate() {
return databaseSchemaUpdate;
}
public ProcessEngineConfiguration setDatabaseSchemaUpdate(String databaseSchemaUpdate) {
this.databaseSchemaUpdate = databaseSchemaUpdate;
return this;
}
protected String history = HistoryLevel.AUDIT.getKey();
public String getHistory() {
return history;
}
public ProcessEngineConfiguration setHistory(String history) {
this.history = history;
return this;
}
protected List<Deployer> customPreDeployers;
public List<Deployer> getCustomPreDeployers() {
return customPreDeployers;
}
public ProcessEngineConfigurationImpl setCustomPreDeployers(List<Deployer> customPreDeployers) {
this.customPreDeployers = customPreDeployers;
return this;
}
}
xml文件解析为bean
/**
* springResource Resource springResource = new ClassPathResource(resource)
**/
public static ProcessEngineConfiguration parseProcessEngineConfiguration(Resource springResource, String beanName) {
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);
mlBeanDefinitionReader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_XSD);
xmlBeanDefinitionReader.loadBeanDefinitions(springResource);
ProcessEngineConfigurationImpl processEngineConfiguration = (ProcessEngineConfigurationImpl) beanFactory.getBean(beanName);
processEngineConfiguration.setBeans(new SpringBeanFactoryProxyMap(beanFactory));
return processEngineConfiguration;
}