SpringFramework

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;
  }
上一篇 下一篇

猜你喜欢

热点阅读