免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java开发框架复习笔记 2013/6/1715题填空* 2=3010题选择*2=20100分3题简答*10=301题编程*20=20一、基本概念1. 软件分层的优点:伸缩性、可维护性、可拓展性、可重用性、可管理性。2. MVC框架:模型-视图-控制器3. Structs2.x实际上是另外一个框架Webwork发展而来。4. 关系模型(RMRelation Model)把世界看作是由实体和联系1:1、1:n、m:n构成的。 5. 面向对象三大特征:封装、继承(一般与特殊)、多态(覆盖与重载)6. 对象关系映射(ORMObject Relational Mapping):ORM是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 7. Spring的主要功能:控制反转(Ioc)、面向切面编程(AOP)、持久层的封装和事物管理、提高对web支持。二、Structs1. Struts应用中的action都被定义在struts.xml中,配置文件中action主要包含有name和class属性2. 运行流程:1) 浏览器发送请求2) 核心控制器FilterDispatcher根椐请求决定调用合适的Action3) 拦截器自动对应用运用通用功能 4) 回调用Action上的execute方法 5) Action的execute()方法处理结果信息输出到浏览器 3. Structs体系结构:4. OGNL(Object Graph Navigation Language)对象图导航语言。优点:简单、直观。OgnlContext context = new OgnlContext();/创建OGNL上下文Context.setRoot(user);/将user设置为OGNL上下文的根对象如果获取user的名字,直接表达式可以是“name”。如果访问的不是user,需要在前面加上“#”。三、Spring1. 概念:开源框架,目的为了简化企业级系统开发。往小了说是容器,往大了说是框架。非侵入式。优点:松耦合、高度可配置、易测试、开发简单。2. 容器与框架1)容器:对其中的组件进行管理,负责实例化、初始化、销毁这些组件。2)框架:框架不仅要负责管理某些Bean的生命周期(容器的功能),还需要负责搭建某些基础设施(那些通用的部分)Structs、Spring、Hibernate都是一个框架。但Spring较其他两者涉及领域更广。3. 1)控制反转的概念:组件处于一个容器当中,所有组件的初始化和调用都是有容器负责。程序中各个组件之间的关系,不由程序代码直接操控,而由容器控制。控制权由应用代码中转到了外部容器,即所谓的反转。 2)Bean的概念:组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。Bean由Spring容器初始化、装配及管理 3)配置元数据:描述Bean的定义以及bean相互间的依赖关系4. BeanFactory延迟加载所有bean,直到getBean()方法被调用。ApplicationCotext会在启动后预载入所有单例bean.四、Spring AOP 编程1.术语:AOP(Aspect Oriented Programming)面向切面编程。应用于系统安全、事务、日志、审计。切面(Aspect):描述的是一个应用系统的某一方面或领域。连接点(Join Point):指的是应用程序执行过程中插入切面的点。可能是方法的调用等。通知(Advise):指的是切面的具体实现。切入点(Pointcut):指定了通知应该应用到哪些连接点上。可根据方法名确定连接点。引入(Introduction):允许你为已存在的类添加新的方法和属性。目标对象(Target):指被通知的对象。使用AOP可以使业务对象只关心核心业务逻辑代码。织入(Weaving):把切面连接到其他的应用程序类型或者对象上,并创建一个被通知的对象。Spring的AOP采用的是运行期织入。代理(Proxy):指将通知应用到目标对象后形成的新的对象。2. AOP实现:纯Java实现,目前仅支持使用方法调用作为连接点。3.四种通知类型:1)【Around】接口Org.springframework.aop.MethodInterceptor 拦截对目标方法调用2)【Before】Org.springframework.aop.MethodBeforeAdvice在目标方法前调用3)【After】Org.springframework.aop.AfterReturningAdvice在目标方法后调用4)【Throws】Org.springframework.aop.ThrowsAdvice在目标方法抛出异常是调用4. Spring中建立AOP应用的基本步骤1) 建立目标类及业务接口2) Spring中注册目标类实例3) 建立通知类实现具体的通知接口4) Spring中注册通知类实例5) 配置目标类的代理对象(织入通知形成代理对象)6) 获取代理对象,调用其中的业务方法5. 在切入点中经常使用的正则表达符号:. 匹配任何单个字符,例如:add.表示以add开头以任意一个字符结尾的方法。+ 匹配一个字符的一次或多次,例如:add.+表示以add开头的任意方法。* 匹配0次或多次,例如:delete.*表示delete或以delete开头的方法。6. Spring产生代理对象的两种方式(1)利用jdk中的proxy实现要求我们的被代理对象必须要去实现一个代理接口,代理对象和被代理对象本质是是实现了统一接口的两个对象(2)利用cglib来实现被代理对象不需要去实现一个代理接口,被代理类和代理类之间本质是父子类的关系使用中的区别:在配置文件中指定是以哪种方式生成代理对象false默认情况下是false,用的jdk中proxy实现的方式。为true则为cglib的方式五、Hibernate1.JDBC的缺点:2. 相同点:l 两者都是JAVA的数据库操作中间件。l 两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。l 两者都可以对数据库的更新操作进行显式的事务处理。不同点:l 使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)语言l 操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。l 数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。3. ORM(Object relationship mapping)对象关系映射4. 使用Hibernate的7个步骤:1) 创建Configuration实例(根据hibernate.cfg.xml)Configuration configuration = new Configuration().configure();2) 创建SessionFactory(User.hbm.xml)SessionFactory sessionFactory = configuration.buildSessionFactory();3) 打开SessionSession session = sessionFactory.openSession();4) 开始一个事务Transaction tx = session.beginTransaction();5) 持久化操作(sava、delete、update、find、load)6) 提交事务mit();7) 关闭SessionSession.close();5. Hibernate的五个核心接口:1) Configuration接口配置Hibernate,启动Hibernate,创建sessionFactory对象2) SessionFactory接口它保存了对当前数据库配置的所有映射关系,它是将某个数据库的映射关系经过编译之后全部保存在内存中的。 它还是生成Session的工厂,它在进行实例化的过程中将会用到ConnectionProvider。一个SessionFactory对应一个数据库连接,当数据库连接改变时需要修改SessionFactory 3) Session接口是进行持久化操作的基础,所有的持久化操作都是在Session的基础上进行的。它相当与JDBC中的Connection。它是Hibernate的持久化管理器的核心,提供了一系列的持久化操作方法。另外,它还持有一个针对持久化对象的一级缓存,在遍历持久化对象或者根据持久化标识查找对象的时候会用到。4) Transaction接口功能上和数据库中的事务完全一样,通过它实现对数据库中事务的控制。Transation对象是Session对象产生的,所以他的生命周期比Session短。一个Session的生命周期中可以有多个Transaction对象。5) Query和Criteria接口执行数据库查询6. SessionFactory接口一个sessionFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。1)它是线程安全,这意味着它的同一个实例可以被应用的多个线程共享。2)它是重量级,这意味不能随意创建或销毁它的实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。7. Session接口提供操作数据库的方法:save()、update()、delete()、find()、load().8. Hibernare的关联映射A. 单向多对一【多条街道对应一个区县】只在many一方,即街道配置关联。B. 单向一对多【一个区县有很多街道】在区县的javabean里,加上private Set jds = new HashSet();及get/set()方法。在one方,即区县的配置文件中加入: C. 双向一对多【一个区县有很多街道,多条街道对应一个区县】结合A+B即可。a) 【增加一个区县】在one一方增加,Qx shannanqu = new Qx();qx.setName(“shannanqu”); super.add(qx);b) 【增加山南区下属的三个街道:“和平路”、“八一路”和“五四大道”】在many一方增加,Jd jd1 = new Jd(); jd.setname(“hepinglu”);jd.setQx(shannanqu); super.add(jd1); c) 【删除“五四大道”】配置set节点的inverse(反转)属性。为true时,表示由对方负责关联关系的添加和删除;为false时,表示由自己负责维护关联关系。为了保持对象模型和数据库数据一致,还要调用qx.getJds().remove(jd);先从对象模型中删除。d) 【划“和平路”到海淀区】对数据模型编码:分别取出和平路、海淀区、和平路原来所属区县,进行添加和删除。对数据库进行编码:在控制方进行更新操作e) 【删除山南区】因为外键约束,应该先删除子表,再删除父表。如果many一方数据较多,可移动过设置set节点cascade可实现自己级联删除。cascade = all : 对所有操作都进行级联cascade = none : 对所有操作都不进行级联cascade = save-update : 执行更新操作时级联cascade = delete : 执行删除操作时级联D. 多对多 9. Hibernate的检索方式1) 立即检索策略 lazy=”false”2) 延迟检索策略 lazy=”true” (只有打开session了lazy才有效)3) 迫切左外链接检索策略10. Hibernate中的常用的查询方式有3中:HQL、QBC和本地SQL查询方式。六、SSH思想(建议:先整合spring+structs,再整合spring+hibernate)1. spring整合structs(反之亦可)1) 使用Spring的ActionSupport (常用)2) 覆盖RequestProcesser (少用)3) 使用Spring动作代理(将动作管理委托给spring)(配置麻烦,强调注入)评价第一种方法:优点:简单缺点:违反IOC硬编码(解决:可通过定义标识接口并继承,在需要的getBea方法的参数中用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025法考物理力学真题复刻新大纲适配卷附答案解析与模拟答案
- 人教版2025-2026学年七年级上册第5章《一元一次方程》单元测试卷(含答案)
- 2026年医考内科学心血管疾病用药专题卷附答案解析与配伍禁忌
- 三年级负重走运动项目教学设计
- 广播电视发射站智能化改造创新创业项目商业计划书
- 坚果面膜创新创业项目商业计划书
- 复古旅行家风格箱创新创业项目商业计划书
- 塑料挤出机远程监控系统创新创业项目商业计划书
- 心理健康主题书籍出版创新创业项目商业计划书
- 客车自动驾驶场景适应性测试创新创业项目商业计划书
- 公司企业福利活动方案
- 全国导游人员资格考试单科综合测试卷(科目一:政策与法律法规)
- Rhino+KeyShot产品设计 课件 第7章 产品渲染的常规“十步流程”
- 公司用车用油管理制度
- 工程分包资料管理制度
- 药品抵款协议书
- 挂靠劳务资质协议书
- 冬季纸板爆线问题分析与改善培训
- 项目管理经验分享总结
- 信创培训课件
- 微组装管理制度
评论
0/150
提交评论