OA项目介绍.docx
《OA项目介绍.docx》由会员分享,可在线阅读,更多相关《OA项目介绍.docx(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、OA 第一天.1、 OA可以用在2个地方.a) 政府b) 企业c) 采用OA就是把他们的流程做成一个软件.2、 需求分析从界面入手,但是写程序别从界面入手. a) 分析 设计 实践.3、 Java三件宝a) 框架 SSH.b) 模式. 学习的是它的适用领域.c) 领域模型.i. 最重要的,当你获取需求以后.需要使用面向对象技术开发领域模型.4、 按模块进行迭代开发.a) 进一步细化需求.b) 用例模式.c) 分析模式(概念模型) 最重要的.d) 设计模式 对分析模式的细化.e) 实现. 所有的设计模式都是和实现相关的.f) 测试,5、 分析.a) 需求分析.i. 它们必须是正确的.ii. 它们
2、必须是可行的.iii. 它们必须是对项目来说是必不可少的.iv. 它们必须是被标明优先次序的.v. 它们必须是不含糊的.vi. 它们必须是能够ioubei证实.vii. 一旦需求确认以后,没有写的不能做.b) 需求分析具体过程(切入点).i. 了解客户.ii. 了解业务.iii. 了解行业.iv. 了解同行产品.v. 这些事情在与客户正式开始沟通之前就尽量了解,这样在与客户交流时有效的减少在业务上的陌生感,会尽快使客户对项目团队产生必要的信任.6、 OA系统的需求.a) 基本模块i. 组织架构.ii. 权限管理.b) 核心模块.i. 公文流转.1. 例如报销:如何把一个数据,转给另外一个人.c
3、) 其他次要模块.7、 流程定义:就是例如以前没有请假单流程,自己可以加一个部署到项目. a) DOJO书.i. 是一个javascript的树.8、 hibernate.hbm2ddl.auto.create.hibernate.hbm2ddl.auto.updatea) 当你创建SessionFactory实例时,它会根据你的映射文件导出到数据库里.OA 第二天.1、 如何定义接口?a) 主要看客户端的需要.例如:dao层的客户端就是manager层.2、 如何读懂需求?a) 理解需求中的概念.b) 例如:考勤 你得了解过程,还有什么报表,现有的软件.3、 组织机构.a) 职能型组织架构.
4、 大公司,分部门.b)i. 这个图就是上面的概念模型图.c) 集权型组织架构 中小型公司,一级管一级,不分部门i.d) 混合型组织架构 前面两种混合起来.人下面有部门,部门下面有人,在某种情况可以把他们俩看成一个概念,进行泛化(继承)i.e) 网状组织架构 也叫矩阵型,通常用于跨国大型企业.i. 关联会有一个时间的限制.ii. 多对多一般会拆分成两个多对一的关联,应该把中间的关联表抽象出来进行扩展.1. 中间表对应原来表肯定是多对一,中间像两边任何一边看都是多对一.可以在中间表加一些自己的需要的属性.iii. 规则就是它们类型的多对多,也就是两个多对一.例如:1. 部 局 处 科. ,他们分别
5、的父亲都是上一级,子都是下一级. iiii. 按照某种职责来建立partyType, 4、 合适的uml用例一般最好是少于10步和10步左右的,才是一个粒度的,合适的用例a) 用例其实也就是功能性的需求.b) 要编写用例文本,参与者的动作,系统的响应,主要路径和扩展路径.c) 主要路径.i. 写主要的内容.d) 扩展点i. 写一些异常信息,例如删除失败,取消操作之类的.e) 补充说明i. 主要是用来做补充的,例如添加机构时,ID生成的规则之类.5、 在ssh里避免一个Action方法里,和业务逻辑组件进行2次交互,不然会造成事物不一致.6、 画顺序图实际上就是在实现,画的时候是根据用例图文本里
6、的主要路径OA 第三天.1、 开发流程 做一点测一点,首先根据领域模型对象创建实体.因为它是被依赖的.采取自底向上的实现.2、 Hibernate为什么要强制定义inverse呢?a) 只有这样,才能强制保证在多的一端维护,如果强制在一的一端维护,则无法运行.b) 最主要的是在更新的时候,如果不设置inverse,在维护的时候会更麻烦.i. 还是 学生 - 班级,当你更新一个班级时,如果班级里只是从ActionForm里获取数据,但是更新了以后此时学生集合是空的,它会去掉学生与班级的所有关联关系.3、 切记Hibernate的get加载的是一个代理对象.4、 在测试单元类中,可以继承测试父类.
7、在setup中打开session,避免session Closed异常.因为在测试类中,并不能使用OpenSessionInView.a) 继承父类 AbstractTransactionalSpringContextTestsi. 需要实现getConfigLocations.ii. 注入业务逻辑层对象,它会自动注入,根据类型.b) 加入spring的spring-mock.jar包.c) 当一个方法调用完,它会自动回滚事物,和关闭Session. 如果想提交事物的话,调用setComplete().5、 状态图最好用在页面的流程分析.a) 每一个状态代表一个页面,也就代表调用了一个acti
8、on,因为在struts中,进入一个页面都是要经过struts.6、 切记struts ActionMappings里的scope 是代表的是actionform存储的范围.OA 第四天.1、 Struts配置文件里Action的attribute属性是用来给Form重新命名的,在jsp页面就可以用重新命名的名字来取值.2、 没事别从form取值,在存在request里,在下一个页面直接从form取就行了3、 切记struts刷新请求会重复提交.a) 因为当你请求一个Action时,它会把你的请求做为此页面的url,你如果刷新,它不会加载页面,会重复提交你的请求.b) 要切记Action也可以
9、自己顶一个Forward,用来跳转.4、 模态窗口.a) 当使用模态窗口时,此时只能对子窗口做操作,不能对父窗口操作.b) window.Localexxxx代表父窗口.5、 一般的删除操作.a) 一般的是打开一个新窗口,可以避免了任何问题,例如传参数,刷新重复提交之类的问题.6、Struts局部异常配置会根据input的路径来转发.OA 第五天.1、 了解taglib-pager分页标签.a) 主要是帮你生成主页下一页的连接的.b) 当生成以后它会把值存在page范围,名字是$pageUrlc) 如果想使用页码变中间的那种,例如goolge,可以使用pager标签里的pages,生成之后的U
10、rl就存在page属性的pageNumber里.d) 当前页数也存在pageNumber里,会有冲突,我们可以使用pager的export来给它重命名.例如export=”currentPageNumber=pageNumber”,这样之后,我们也可以实现goolge的分页时候不能连接到本页,直接判断currentPageNumber和上面的pageNumber(中间显示本页).e) 如果需要设置参数,可以直接使用pg:param标签,可以直接name=parentId,如果不设置值,它会从request里获取parenjtId.f) 具体详细参见 taglib-pager使用说明.txt2、
11、 分页 a) 需要传一个当前页数,而且需要一个每页显示的大小.b) 查询完查询的是一页的数据.3、 数据的封装,抽象 找出相同的,重复的过程,把需要的参数之类的东西全部定义成方法的参数.4、 截取字符串 包头不包尾.,截取时不算最后一个,得算上第一个.5、 在J2EE中,要考虑多线程影响变量的问题,如果要共享变量,尽量使用ThreadLocal,不会有线程安全的问题.6、 如果要把Object转换成整形时,千万不要直接写int I = (Intger)Object. 这样有时候会抛异常,因为你首先把一个Object转换成Integer.没任何错误,但是当Integer转换成整形时,JDK会自动
12、解包,所以会出错 NullPointException.7、 Xdoclet 可以解决手工编写映射文件.OA 第六天.1、 权限控制三元素:主体(who)、 资源(What)、 操作(How)、2、 RBAC模式. Role Base Access Controll.a) RBAC-0. 永远都不允许直接把权限赋予给用户.i.b) RBAC-1.在RBAC-0上做的扩展.i.c) RBAC-2,也是在RBAC-0上进行了扩展.在进行用户和角色之间建立一种约束.i. 例:角色根另外一个角色授权有冲突,根据某种规则,不允许这个角色分配给这个用户.ii.d) RBAC3 = RBAC1 + RBAC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OA 项目 介绍
限制150内