jBPM4.4:配置(包括跟Spring的整合,和Hibernate配置)
jBPM4.4:配置(包括和Spring的整合,和Hibernate配置)?jta ? ? : ? ? ?import resourcejbpm.tx.jta.cfg.x
jBPM4.4:配置(包括和Spring的整合,和Hibernate配置)
?
jta ? ? : ? ? ?<import resource="jbpm.tx.jta.cfg.xml" />
standalone:?<import resource="jbpm.tx.hibernate.cfg.xml" />
?
这几个文件都在{jBPM4.4}的src目录中。
现在要做的和spring结合起来,因此在自己项目中,采用第一个配置:
?
其实这3个文件的差别也是不大,主要在于配置transaction-context上,而且如果采用spring的话,hibernate的配置进了spring的配置文件,因此在jbpm.tx.spring.cfg中,不需要有hibernate的配置,而另外2种方式,都要声明hibernate配置采用哪个文件。
?
样例的applicationcontext.xml:
?
Xml代码
<?xml?version="1.0"?encoding="UTF-8"?>?? ?? <beans?xmlns="http://www.springframework.org/schema/beans"?xmlns:aop="http://www.springframework.org/schema/aop"?? ??xmlns:context="http://www.springframework.org/schema/context"?xmlns:tx="http://www.springframework.org/schema/tx"?? ??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-2.5.xsd ?? ????http://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-2.5.xsd ?? ????http://www.springframework.org/schema/context?http://www.springframework.org/schema/context/spring-context-2.5.xsd ?? ????http://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">?? ?? ??<bean?id="springHelper"?class="org.jbpm.pvm.internal.processengine.SpringHelper"?/>?? ?? ??<bean?id="processEngine"?factory-bean="springHelper"?factory-method="createProcessEngine"?/>?? ?? ??<bean?id="sessionFactory"?class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">?? ????<property?name="configLocation"?value="classpath:jbpm.hibernate.cfg.xml"?/>?? ????<property?name="dataSource"?ref="dataSource"?/>?? ??</bean>?? ?? ??<bean?id="transactionManager"?class="org.springframework.orm.hibernate3.HibernateTransactionManager">?? ????<property?name="sessionFactory"?ref="sessionFactory"?/>?? ????<property?name="dataSource"?ref="dataSource"?/>?? ??</bean>?? ?? ??<bean?id="dataSource"?class="org.springframework.jdbc.datasource.DriverManagerDataSource">?? ????<property?name="driverClassName"?value="@jdbc.driver@"?/>?? ????<property?name="url"?value="@jdbc.url@"?/>?? ????<property?name="username"?value="@jdbc.username@"?/>?? ????<property?name="password"?value="@jdbc.password@"?/>?? ??</bean>?? ?? </beans>??
数据库的配置在spring配置文件中,单独的有一段:
?
Xml代码
<bean?id="sessionFactory"?class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">?? ??<property?name="configLocation"?value="classpath:jbpm.hibernate.cfg.xml"?/>?? ??<property?name="dataSource"?ref="dataSource"?/>?? </bean>??
?
?
而且数据源配置在spring的配置文件中,因此在hibernate的配置文件中,就不需要配置数据源了。
hibernate的配置文件:在{JBPM4.4}/install/src/cfg/hibernate/spring中:
以oracle的配置文件为例:
?
Xml代码
<?xml?version="1.0"?encoding="utf-8"?>?? ?? <!DOCTYPE?hibernate-configuration?PUBLIC ?? ??"-//Hibernate/Hibernate?Configuration?DTD?3.0//EN" ?? ??"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">?? ?? <hibernate-configuration>?? ??<session-factory>?? ????<property?name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>?? ????<property?name="hibernate.format_sql">true</property>?? ?? ????<mapping?resource="jbpm.repository.hbm.xml"?/>?? ????<mapping?resource="jbpm.execution.hbm.xml"?/>?? ????<mapping?resource="jbpm.history.hbm.xml"?/>?? ????<mapping?resource="jbpm.task.hbm.xml"?/>?? ????<mapping?resource="jbpm.identity.hbm.xml"?/>?? ??</session-factory>?? </hibernate-configuration>??
?在hibernate的配置文件中,见不到数据库的连接配置信息了,这样数据库连接可以在spring中统一配置,避免了在一个系统中,多处配置数据库连接的情况。
?
这样完成了jBPM4.4和spring的结合