JavaEE期末复习笔记

Java EE

第一章

JavaEE架构通常分为实体层,数据访问层,业务逻辑层,控制器层,表现层

Struts是一个为开发基于MVC模式的应用架构的开源框架,是利用Servelet和JSP构建Web应用的一项技术

Hibernate是一种Java语言下的对象关系映射解决方案,实现了数据持久化功能

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的

简述MVC思想:

  MVC是将项目按照模型层,视图层,控制器层的方式进行划分,目的是将模型层和视图层的代码实现分离,降低程序间的耦合,提高了应用的重用性,适用性,扩展性以及维护性。

Struts 2是Struts 1和WebWork结合的产物

EJB组件主要有:会话,实体和消息驱动三种类型的Bean

Struts 2

第二章

Struts 2控制器包括:
1. 核心控制器:StrutsPrepareAndExecuteFilter
2. 业务控制器:Action

Struts 2在Struts.xml中配置Action信息

Struts 2的两种配置文件: struts.xml 和 struts.properities

在web.xml中配置了核心控制器后,一个Web应用就具有了Struts 2框架的基本功能

简述Struts 2的优点:

  支持更多的表现层技术,有更好的适应性,Action无须与Servlet API耦合,使得测试更加容易,同时提高了代码的重用率,具有更好的模块化和可扩展性。

第三章

Struts 2中的Action可以通过ActionContext类访问Servlet API

Struts 2的异常处理机制是通过在struts.xml文件中配置<exception-mapping>元素来完成的,
配置该元素时,需要指定exception和result两个属性

配置Struts 2常量可在:

  1. struts.xml
  2. struts.properities
  3. web.xml

Struts 2框架下实现Action类有以下三种方式:

  1. 普通的POJO类
  2. 实现Action接口
  3. 继承ActionSupport类

ActionSupport类是Struts 2的默认Action处理类

第四章

自定义标签具有如下优势:

  1. 开发更简单
  2. 可维护性强
  3. 复用性高

自定义标签可分为3类:

  1. 非UI标签:数据访问,逻辑控制
    1. 流程控制标签
    2. 数据访问标签
  2. UI标签:生成HTML元素
    1. 表单标签
    2. 非表单标签
  3. Ajax标签:支持Ajax

值栈中存在的对象:模型对象,action对象,request对象

OGNL的跟对象为值栈

值栈对应ValueStack接口,该接口的实现类为OgnlValueStack

OGNL访问对象属性时,若不是跟对象需要添加#

<bean>标签用于创建一个JavaBean实例,创建实例时可以在标签体内使用<param.../>标签为该实例传入属性

Hibernate

第五章

ORM为对象关系映射,是面向对象编程语言和关系数据库之间的桥梁

ORM框架的优势:

  1. 通过面向对象的编程思想对数据库进行访问
  2. 简单易用,提高开发效率,最大限度地降低代码的编写工作
  3. 降低访问数据库的频率,提高应用程序性能
  4. 相对独立,变动时不会影响上层的实现

ORM基本映射规律:

  1. 表与类
  2. 表中的行与对象
  3. 表中的列与对象的属性

Hibernate的优点:

  1. 开源,免费
  2. 轻量级封装,避免引用过多复杂问题,易调试
  3. 具有可扩展性,API开放
  4. 性能稳定,具有保障

开发Hibernate应用程序的方式:

  1. 自顶向下从持久化类到数据库表,即先编写持久化类,再编写映射文件,进而生成数据库表结构
    1. 配置Hibernate应用环境
    2. 编写PO
    3. 创建Configuration对象
    4. 创建SessionFactory对象
    5. 获取Session对象
    6. 使用Transaction管理事务
    7. 使用Query进行HQL查询或利用Criteria实现条件查询
  2. 自顶向上:从数据库表到持久化类,即根据数据库表结构生产对应的映射文件和持久化类
  3. 从中间出发向上与向下同时发展:即先编写映射文件,然后根据映射文件向上生成持久化类,向下生成数据库表结构

对于需要被持久化的POJO对象的生命周期为:

  1. 瞬时状态:刚刚用new关键字创建,还未持久化,且尚未与Hibernate Session关联,不处于Session缓存中
  2. 持久化状态:已经被持久化,加入到Session缓存中,与数据库中表的一条记录对应,并拥有一个持久化标识
  3. 托管状态:已被持久化,但不再处于Session缓存中

每个配置文件对应一个Configuration对象,代表一个应用程序到数据库的映射配置

PO采用低侵入设计

Configuration用于配置,启动Hibernate,创建SessionFactory实例对象

SessionFactory接口用于初始化Hibernate,创建Session实例,充当是数据源代理

Session接口用于保存更新删除加载和查询持久化对象,充当持久化管理器

第六章

关联关系:

基于外键的单向和双向1-1分别为:

<many-one>,且 unique=true 和 <many-one>,且 unique=true,另一端<many-one>

基于主键的单向和双向1-1分别为:

<one-one> 和 两端都<one-one>

Hinbernate的检索方式:

  1. 导航对象图检索方式
  2. OID检索方式
  3. HQL检索方式:运行时解析,依赖于Query对象
  4. QBC检索方式:编译时进行解析,需要两个接口和一个工具类来实现
    1. Criteria接口:代表一次查询
    2. Criteration接口:代表一个查询条件
    3. Restrictions类:产生查询条件的工具类
  5. SQL检索方式

HQL是完全面向对象查询语言

QBC封装了字符串形式的查询,提供了更加面向对象的查询

Query和Criteria都可以充当Hibernate查询语句,其中Criteria用于执行Query查询

QBC适用于生成动态查询语句

QBC把查询语句分解成一组Criterion实例,可读性差

事务具有如下的特性:

  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持久性

声明事务包括下面的内容:

  1. 事务开始边界
  2. commit
  3. rollback

第七章

类级别检索策略包括:

  1. 立即加载(默认)
  2. 延迟加载

关联检索策略:

  1. 立即加载
  2. 延迟加载
  3. 预先抓取

Spring

第八章

Spring解决方案主要功能包括:

  1. 基于依赖注入的核心功能
  2. 声明式面向切面编程
  3. 与多种持久层技术的整合
  4. 独立的Web MVC框架

Spring的特点:

  1. 轻量
  2. 控制反转(IoC)
  3. 面向切面(AOP)
  4. 容器
  5. 框架

BeanFactory接口是Spring框架的核心接口

对于复杂的以来关系,如果采用构造注入会导致构造器过于臃肿,难以阅读,这时可以使用设值注入

设值注入要求Bean提供一个默认的无参构造方法,并未需要注入的属性对应的setter方法

构造注入可以在构造器中决定依赖关系的注入顺序,有限以来的优先注入

Bean的作用域:

  1. 默认为singleton表示容器始终使用一个实例
  2. prototype表示一个Bean定义多个对象实例,每次调用getBean就创建一个新实例
  3. request表示每次HTTP请求就生成一个实例,只能用于Web项目
  4. session表示每个会话生成一个实例,只能用于Web项目

第九章

AOP将系统分为两部分:核心关注点和横切关注点

AOP是指面向切面编程

AOP常用术语:

  • 连接点
  • 切入点
  • 增强
  • 目标对象
  • 引入
  • 织入
  • 代理
  • 切面
  • AOP实现策略:

    1. JavaSE动态代理
    2. 字节码生成(cglib)
    3. 定制的类加载器
    4. 代码生成
    5. 语言扩展

    Spring AOP增强类型:

    1. 前置增强
    2. 后置增强:无论方法是正常执行完还是抛出异常都会执行此增强
    3. 返回后增强
    4. 抛出异常后增强
    5. 环绕增强:包围连接点方法的增强,可替代前述任何一种增强
    6. 引介增强:能使目标类实现某个接口

    (* com .. * . * Service . *(..))代表:匹配com包或其子孙包中,名称以Service结尾的接口/类中的任意的方法

    AOP能否替代OOP?适用于哪些场合?

      AOP是面向对象编程的一种有益补充,是OOP的补充和延续,但不能替代OOP。AOP并非适合所有场合,通常,如果在多个业务流程中都需要做相同或类似的业务处理,则特别适合使用AOP解决。

    第十章

    池化是一种将资源统一管理,为需要资源的任务自动调度分配资源,以提高性能并实现资源重用的技术

    Spring提供的HibernateTemplate可以代理Hibernate Session的大多数持久化操作

    HibernateCallback接口配合HibernateTemplate进行工作,该接口不需要关心Hibernate Session的打开和关闭,仅需要定义数据操作和访问逻辑即可

    Spring提供了HibernateDaoSupport类,使用该类可方便实现DAO

    OSIV模式的核心就是控制Hibernate Session对象在表示层所有数据输出结束之后再关闭,这样可以避免在表示层中读取被延迟加载的对象时抛出异常

    简述Spring,Struts 2,Hibernate三个框架的集成步骤:

    1. web.xml中需要配置Spring的ContextLoaderListener和Struts 2的Servlet过滤器
    2. 所有的DAO类需要继承HibernateDaoSupport,并采用HibernateTemplate方式操作数据库
    3. Spring配置文件需要配置LocalSessionFactoryBean类
    4. Spring配置文件中配置声明式事务
    5. 将每个Action配置weiBean,并指明scope为prototype
    6. Struts 2配置文件中,需要配置每个Action,并且其class属性值不再是完整的类名,而应该是对于的Spring配置文件中的Bean的id
    0 * * * * ?  每1分钟触发一次
    0 0 * * * ?  每天每1小时触发一次
    0 0 10 * * ?  每天10点触发一次
    0 * 14 * * ?  在每天下午2点到下午2:59期间的每1分钟触发 
    0 15 10 * * ? 2005  2005年的每天上午10:15触发 

    编程题

    编程题1

    这里写图片描述

    这里写图片描述

    编程题2

    这里写图片描述

    这里写图片描述

    编程题3

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    编程题3-struts

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    选择题

    一

    这里写图片描述

    二

    这里写图片描述

    三

    这里写图片描述

    五

    六

    这里写图片描述

    七

    八

    这里写图片描述

    九

    这里写图片描述

    这里写图片描述

    猜你喜欢

    转载自blog.csdn.net/figurers/article/details/80930366