2022年OA知识点总结 .pdf
《2022年OA知识点总结 .pdf》由会员分享,可在线阅读,更多相关《2022年OA知识点总结 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、OA 项目所使用到的技术Hibernate OR Mapping OpenSessionInView 关联映射一级缓存、二级缓存、查询缓存Query.iterate 和 Query.list 的区别乐观锁定Struts MVC 控制流Spring IOC/DI 【必须理解SSH 架构的技术集成方案】多层:呈现层(struts) 、业务逻辑层(spring) 、持久化层 (hibernate) 开发过程:根据需求创建领域模型,并进行细化,之后针对这些实体类创建hibernate 映射文件(并自动导出为数据库表)根据需求和用例模型,初步设计出模块的接口(方法、返回值、参数)初步实现接口,并编写JU
2、nit 单元测试类,对关键接口进行测试根据需求和界面原型,初步确定页面流(在纸上画图或利用UML 工具画状态图) ,根据页面流,能够确定具体的action 数量以及jsp 数量。逐步实现呈现层,并在实现的过程中不断测试和完善(因为用户的需求发生变化,所以包括业务逻辑接口、甚至领域模型都有可能需要发生一定的变化)!xdoclet 是一个开放源码的代码生成工具。你可以在java 源文件中添加JavaDoc 标签,xdoclet 将会解释你的源文件,并从中产生xml 文件或其它源代码文件。我们在oa 项目中,使用xdoclet,并结合ant,生成 hibernate 的映射文件以及hibernate
3、 配置文件。这样,可以避免在项目不断发展的过程中,代码与映射文件可能不一致的问题。【需熟悉在 java 源代码中定义常用hibernate 映射的方法】Ant - Ant 是一个构建工具, 它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目。Ant 的构建脚本是一个xml 文件。 Target是一个可单独执行的单元,task 是被包含在target 中的执行任务,一个target 可能包含多个 task。比如编译java 源代码、拷贝文件、生成hibernate 映射文件这些就是一个个的 task!在 oa 项目中, ant 结合 xdoclet 自动生
4、成hibernate 相关配置和映射文件。并使用它来进行项目的构建、测试和部署。JUnit 是一个单元测试工具。供程序员使用。在oa 项目开发的过程中,用JUnit 对关键的接口进行测试。用JUnit 进行的测试,一般称为白盒测试(即能够对程序的运行过程进行测试)Dom4j 是一个解释xml文档的框架。它支持DOM(Document Object Model) 、SAX(Simple API for XML) 两种 XML 解释方式。并实现了JAXP (Java API for XML Processing) 。 【需理解 DOM 和 SAX 之间的差异】 oa 项目中,有一些初始化数据以及测
5、试数据,这些数据使用xml 文件的方式存储,所以需使用dom4j 来解释这些xml 文档,精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 9 页 - - - - - - - - - - 并将其中的数据初始化到数据库中。DOM 基于对象模型,在创建Document 对象的时候,就针对整个xml 文档生成了一颗节点树(因为xml 的结构是树状的)SAX 基于事件模型,在读取xml 文档的过程中,发出一系列的事件(比如标签开始、标签结束、碰到注释等等),需定义相关的事件处理器来处理这个文档。JAXP
6、 是一个 xml 解释的规范Log4j 日志记录工具,需理解logger、appender、layout、level 的概念Commons-log 日志记录工具,需理解为何要使用commons-log!更抽象,如果当前类路径中有log4j,则自动使用log4j ,否则使用jdk 的 log,否则使用 commons-log 自身的简单log 功能。Dwr 一个 AJAX 框架,通过简单的配置之后【需了解其配置方式】,使得可以在浏览器上,通过javascript 直接调用后台的业务对象。【需熟悉 dwr 的架构】在某些情况下,比如想增强用户体验、界面过于复杂时, 可适当运用这种技术来实现。Oa
7、系统使用dwr来实现授权管理的界面。Dwr 架构图:DWR JavaScript 库JavaScript 代码Web 页面DWRServlet我们自己的JavaBeanWeb Application ServerDwr 在运行时(而非编译期间)生成后台业务对象的包装javascript 对象,使得其在浏览器中能够被直接调用!Dwr 的 javascript 工具库使用起来也很简单,比如可以使用$(“ id” )来直接获得页面元素对象,比document.getElementById 更方便。在缺省情况下, dwr 使用异步的方式来向后台发起请求,所以如果同时向后台调用两个或两个以上的方法,则其
8、返回的先后顺序是无法预测的。这是AJAX的缺省行为。可以通过调用dwr.engine.setAsync(false); 来改变为同步模式。这样, 只有在第一个方法返回之后,才能继续先后执行,其先后顺序将是固定的(这就是同步调用) 。JBPM 一个开源的工作流引擎,oa项目通过结合使用JBPM 完成公文流转的需求。Freemarker 开源的模板引擎,oa 项目使用 freemarker 来动态呈现公文表单。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 9 页 - - - - - - - -
9、- - 权限管理及其实现思路需求: oa 系统包含众多模块,要求能够通过权限管理,控制不同用户对模块的访问权限,而且需要控制到 (增删改查) CRUD 操作的级别。 要求能通过角色对用户进行统一授权,在某些特殊情况下,能够单独对用户进行授权。分析概念模型设计:在用户与角色的关系中,以用户为主来进行设计符合客户的使用习惯,即“将多个角色授予某个用户(让用户拥有多个角色)” ,比“将多个用户添加到某个角色上”更加让人容易理解。模块的授权以针对角色为主,即大部分的情况下,针对角色来分配模块的权限一旦根据角色划分好权限之后,就可以进行用户的创建工作,同时可以给用户分配角色(可以为多个) ,用户将拥有其
10、所属角色的所有权限(这样就达到了统一控制的目的)由于一个用户可以拥有多个角色,系统无法对角色的授权进行控制(或者说无需对其授权进行控制,因为为了给客户提供更大的灵活性),所以很有可能出现授权有冲突的多个角色被授予同一个用户的情况,比如:角色A 对模块 A 有删除权限,但角色 B 对模块 A 的删除权限则被禁止,这时候, 如果将角色A 和角色 B 同时授予用户 A,则会造成困扰,究竟用户A 对模块 A 的删除权限是允许还是不允许?它应该是以角色A 的授权为准,还是应该以角色B 的授权为准?针对这个问题,可以考虑如下解决办法:第一种解决办法是:如果多个角色之间有授权冲突,则不允许将这些角色同时授予
11、同一个用户,比如,在上述例子中,不允许将角色A 和角色 B 同时授予用户 A 第二种解决办法是:允许将有授权冲突的角色同时授予同一个用户,但用户在某个时刻只能扮演其中的某个角色。在用户登陆后台管理界面之后,可以通过切换角色,来执行不同的操作!第三种解决办法是:允许将有授权冲突的角色同时授予同一个用户,对用户的这些角色来说, 有优先级的概念,当将角色分配给用户的时候,应该设置它的优先级。 同一个角色在不同的用户那里可能具有不同的优先级。当授权有冲突的时候,以优先级更高的角色授权为准。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - -
12、 - - - - -第 3 页,共 9 页 - - - - - - - - - - 第一种解决办法限制太死,不够灵活; 第二种解决办法,客户的反馈是不够方便(需要不断切换) ;因此本设计方案将采取第三种解决办法至此,用户与角色之间的设计思路便清晰起来:再来看授权, 可以把模块的增删改查操作授予某个角色或用户,并设置为允许或禁止此操作。 我们可以考虑使用授权控制列表来存储授权信息。现有需求下, 授权的主要要素是:一个是角色或用户;一个是模块;一个是操作;一个是允许/禁止。这也就是授权控制列表(ACL )的主要要素。进一步的思考是:操作包括“增删改查”四种操作,针对这每一种操作,需要一个对应的“允
13、许 /禁止”标识。最直观和直接的考虑便是:ACL 针对每种操作设置一个属性,和一个“允许/禁止”的标识。但是这种设计会造成灵活性的缺失。比如有可能随着需求的变更,添加了其它的操作类型,那时候必须对ACL 做必要的更改才能适应需求的变化。为了适应这种可预见的需求,可将操作及其“允许/禁止”标识设计如下:在 ACL 中,设计一个int 类型的状态位:aclState,在 Java 中, int 类型有 32位,用位 (bit) 来表示操作类型(暂定:第0 位表示“增” ;第 1 位表示“删” ;第 2 位表示“改”;第 3 位表示“查” ) ,位的值(对于“位”来说,只能取值0 或 1)用来表示“
14、允许/禁止”(0 表示禁止, 1 表示允许)。这样,操作类型及其“允许 /禁止”标识便能合二为一,而且提高了灵活性(能支持将来可能会增加的多达32 种操作类型),因为对于某个模块而言,针对这个模块的操作能够超过32 个的情况,是几乎不会发生的,因此对这种特殊情况可以不予考虑。客户要求在特殊的情况下,能够直接对用户进行授权。意思是不管其角色的授权如何,始终采取针对用户的授权来作为最终的授权。而且, 要求控制到的粒度是模块(即可以针对某个模块设置给某用户单独的授权)。当然,在设置好授权之后,可精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年OA知识点总结 2022 OA 知识点 总结
限制150内