activiti学习(十)

149 阅读2分钟

image.png 持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

Activiti的使用

现在的项目基本上都需要存储数据,存储数据那么基本上离不开数据库。在Activiti中,提供了两种配置数据库的方式,上一篇文章我们讲了JDBC的配置方式,接下来看看JNDI的配置方式。

Activiti配置JNDI数据源

默认情况下,Activiti的数据库配置包含在数据库中。每个WEB应用程序的WEB-INF/classes中的属性文件。有时候这个不是很方便,因为它需要用户修改db.properties并重新编译war文件,或分解war并修改db.properties上的每个属性。
通过使用JNDI(Java命名和目录接口)获得数据库连接,连接完全由Servlet容器管理,配置可以在war部署之外进行管理。这还允许对连接参数进行比db提供的更多的db.properties文件配置。

进行配置

JNDI数据源的配置因servlet容器的不同而不同。以下用Tomcat容器来进行说明,但对于其他容器应用程序,请参阅容器应用程序的文档。
如果使用Tomcat,JNDI资源将在$CATALINA_BASE/conf/[enginename]/[hostname]/[warname].xml中配置(对于ActivitiUI,这通常是$CATALINA_BASE/conf/Catalina/localhost/activiti-app.xml)。默认上下文是在首次部署应用程序时从Activiti war文件复制的,因此如果它已经存在,则需要替换它。例如,要更改JNDI资源以便应用程序连接到MySQL而不是H2,请将文件更改为以下内容:

<?xml version="1.0" encoding="UTF-8"?>
    <Context antiJARLocking="true" path="/activiti-app">
        <Resource auth="Container"
            name="jdbc/activitiDB"
            type="javax.sql.DataSource"
            description="JDBC DataSource"
            url="jdbc:mysql://localhost:3306/activiti"
            driverClassName="com.mysql.jdbc.Driver"
            username="sa"
            password=""
            defaultAutoCommit="false"
            initialSize="5"
            maxWait="5000"
            maxActive="120"
            maxIdle="5"/>
        </Context>

要配置JNDI数据源,请在Activiti UI的属性文件中使用以下属性:

  • datasource.jndi.name:数据源的JNDI名称。
  • datasource.jndi.resourceRef:设置是否在J2EE容器中进行查找,即如果JNDI名称尚未包含前缀“java:comp/env/”,是否需要添加前缀。默认值为“true”。