OA办公自动化系统--技术###
1.由于涉及企业的流程控制与规则管理。所以系统对于规范要求的严谨性,导致在小型开发组在进行开发时必须基于成熟的技术架构。开源的lemon OA,采用了如下技术细节:
mysql
:开源数据库中技术最为成熟。
hibernate
:经典的orm框架,由于在OA系统建模时,采用的流程引擎activiti是以一种叫petri网的状态转移模型。状态转移本身,就含有较多的表(实体)映射与关联。
SpringMVC
:其实这点值得考虑,因为:(1)系统为了实现很多横向组件,把这些功能放在一个compositeFilter中;(2)系统中url mapping过于分散,当然基于Spring MVC可以直接映射到method上,但是url管理显得有些复杂。
Spring
:在配置文件定义bean,在java源代码文件定义注解,可以非常方便地提升工作效率。使得在配置文件中,不需要写那么多的路径或者class。而在java源代码文件中,可以通过注解,省去一些较为通用工具类的加载和初始化。
maven+jetty
:web应用的版本管理变得有章可查,而且系统变得轻量,因为依赖库是通过maven-repository在load时进行的加载。
Spring Security
:通过Security的authentication和authority机制,定义角色和控制。
inspetktr
:通过inspektr实现audit审核服务。
scheduler
:定时器功能的实现。
2.下面通过两个序列图来展现这样的系统里的数据流:
controller之前的数据流:
controller之后的数据流:
--------------------unfinished
----------------------