Введение
Snaker-SpringMVC проект в основном представляет собой базовый модуль управления процессами, основанный на интеграции springMVC, spring3, hibernate3 и snaker. Он позволяет легко интегрировать движок процессов.
cglib-nodep-2.2.jar
commons-beanutils-1.8.3.jar
commons-lang-2.5.jar
jackson-core-asl-1.9.4.jar
jackson-mapper-asl-1.9.4.jar
slf4j-api-1.7.2.jar
joda-time-2.3.jar
snaker-core-*.*.*.jar
snaker-hibernate-*.*.*.jar
snaker-spring-*.*.*.jar
commons-dbutils-1.5.jar[可选-使用JdbcAccess时需要]
juel-impl-2.1.2.jar[可选-使用Juel表达式引擎时需要,Spring框架项目,建议使用SpelExpression]
slf4j-log4j12-1.7.2.jar[可选-使用log4j日志时需要]
В проекте Maven можно напрямую добавить зависимости:
<dependency>
<groupId>com.github.snakerflow</groupId>
<artifactId>snaker-core</artifactId>
<version>${snaker.version}</version>
</dependency>
<dependency>
<groupId>com.github.snakerflow</groupId>
<artifactId>snaker-spring</artifactId>
<version>${snaker.version}</version>
</dependency>
<dependency>
<groupId>com.github.snakerflow</groupId>
<artifactId>snaker-hibernate</artifactId>
<version>${snaker.version}</version>
</dependency>
Добавьте файл конфигурации Spring для Snaker:
<?xml version="1.0" encoding="UTF-8"?>
<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-3.0.xsd"
default-lazy-init="true">
<description>SnakerEngine配置 </description>
<bean class="org.snaker.engine.spring.SpringSnakerEngine">
<property name="processService" ref="processService"/>
<property name="orderService" ref="orderService"/>
<property name="taskService" ref="taskService"/>
<property name="queryService" ref="queryService"/>
<property name="managerService" ref="managerService"/>
</bean>
<bean id="dbAccess" class="org.snaker.engine.access.hibernate.Hibernate3Access">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="processService" class="org.snaker.engine.core.ProcessService">
<property name="access" ref="dbAccess"/>
<property name="cacheManager" ref="cacheManager"/>
</bean>
<bean id="orderService" class="org.snaker.engine.core.OrderService">
<property name="access" ref="dbAccess"/>
</bean>
<bean id="taskService" class="org.snaker.engine.core.TaskService">
<property name="access" ref="dbAccess"/>
</bean>
<bean id="managerService" class="org.snaker.engine.core.ManagerService">
<property name="access" ref="dbAccess"/>
</bean>
<bean id="queryService" class="org.snaker.engine.core.QueryService">
<property name="access" ref="dbAccess"/>
</bean>
<bean id="cacheManager" class="org.snaker.engine.cache.memory.MemoryCacheManager"/>
<bean class="org.snaker.engine.impl.LogInterceptor"/>
<bean class="org.snaker.engine.spring.SpelExpression"/>
<bean class="org.snaker.engine.impl.SurrogateInterceptor"/>
</beans>
Конфигурируйте сущности Hibernate (добавьте следующие свойства в конфигурацию sessionFactory):
<property name="mappingResources">
<list>
<value>hbm/snaker.task.hbm.xml</value>
<value>hbm/snaker.order.hbm.xml</value>
<value>hbm/snaker.ccorder.hbm.xml</value>
<value>hbm/snaker.process.hbm.xml</value>
<value>hbm/snaker.taskactor.hbm.xml</value>
<value>hbm/snaker.workitem.hbm.xml</value>
<value>hbm/snaker.surrogate.hbm.xml</value>
</list>
</property>
Настройте транзакции [обратите внимание: конфигурация транзакций повлияет на обработку данных движком процессов]:
<!-- 事务管理器配置,单数据源事务 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager"> **Совет по транзакциям**
<tx:attributes>
<tx:method name="start*" propagation="REQUIRED"/>
<tx:method name="execute*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="assign*" propagation="REQUIRED" />
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="complete*" propagation="REQUIRED" />
<tx:method name="finish*" propagation="REQUIRED" />
<tx:method name="terminate*" propagation="REQUIRED" />
<tx:method name="take*" propagation="REQUIRED" />
<tx:method name="deploy*" propagation="REQUIRED" />
<tx:method name="undeploy*" propagation="REQUIRED" />
<tx:method name="redeploy*" propagation="REQUIRED" />
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
<tx:method name="find*" propagation="REQUIRED" read-only="true" />
<tx:method name="query*" propagation="REQUIRED" read-only="true" />
<tx:method name="search*" propagation="REQUIRED" read-only="true" />
<tx:method name="is*" propagation="REQUIRED" read-only="true" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
**Конфигурация АОП**
<aop:config>
<aop:advisor advice-ref="txAdvice"
pointcut="execution(* org.snaker.engine.core..*.*(..))"/>
</aop:config>
<aop:aspectj-autoproxy proxy-target-class="true" />
####3). Вспомогательные инструменты
//Упрощённая оболочка API движка процесса SnakerFlow
com.snakerflow.examples.springmvc.engine.SnakerEngineFacets.java
//Класс для создания JSON данных, используемых для отображения состояния страницы
com.snakerflow.examples.springmvc.engine.SnakerHelper.java
####4). Интеграция определения процесса
Интеграция передней панели: можно скопировать и заменить JSP-страницы приложения на собственные стили.
processList.jsp — страница списка определений процессов;
processEdit.jsp — редактируемая страница определения процессов (обычно доступны для редактирования статус, категория, повторная загрузка файла определения процесса);
processDesigner.jsp — веб-дизайнер для определения процессов, требуется зависимость от JS и CSS;
processDeploy.jsp — страница развёртывания определения процессов, предоставляет только один элемент управления загрузкой файлов для загрузки XML-файла определения процесса;
processView.jsp — просмотр страницы определения процессов, используется для просмотра графика состояний процесса и истории задач;
actor.jsp — динамическая страница добавления участников;
diagram.jsp — график состояний процесса.
Интеграция серверной службы:
com.snakerflow.examples.springmvc.web.ProcessContoller.java
Интеграция веб-дизайнера:
styles\js\snaker;
styles\js\jquery-ui-1.8.4.custom;
styles\js\raphael-min.js.
####5). Задачи в процессе выполнения, совместной работы, пересылки и исторические задачи
Интеграция передней панели:
activeTask.jsp — страница задач в процессе выполнения (основные исполнители, совместные исполнители и пересылка);
activeTaskMore.jsp — список задач в процессе выполнения;
activeCCMore.jsp — список пересылаемых задач;
historyTask.jsp — список исторических задач.
Интеграция серверных служб:
com.snakerflow.examples.springmvc.web.TaskController.java
####6). Экземпляры процессов
Интеграция передней панели:
order.jsp — страница со списком экземпляров процессов.
Интеграция серверных служб:
com.snakerflow.examples.springmvc.web.FlowController.java
####7). Функции делегирования
Интеграция передней панели:
surrogateList.jsp — страница со списком делегатов;
surrogateEdit.jsp — новая страница делегата;
surrogateView.jsp — страница просмотра делегата.
Интеграция серверных служб:
com.snakerflow.examples.springmvc.web.SurrogateController.java
Контакты:
* Группа Snaker: 293568574;
* snakerflow: <snakerflow@163.com>.
Wiki:
* Snaker: <http://snakerflow.com/>.
Лицензия:
Apache License Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0.html>.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )