JavaEE架构通常分为实体层,数据访问层,业务逻辑层,控制器层,表现层
Struts是一个为开发基于MVC模式的应用架构的开源框架,是利用Servelet和JSP构建Web应用的一项技术
Hibernate是一种Java语言下的对象关系映射解决方案,实现了数据持久化功能
Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的
简述MVC思想:
MVC是将项目按照模型层,视图层,控制器层的方式进行划分,目的是将模型层和视图层的代码实现分离,降低程序间的耦合,提高了应用的重用性,适用性,扩展性以及维护性。
Struts 2是Struts 1和WebWork结合的产物
EJB组件主要有:会话,实体和消息驱动三种类型的Bean
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常量可在:
Struts 2框架下实现Action类有以下三种方式:
ActionSupport类是Struts 2的默认Action处理类
自定义标签具有如下优势:
自定义标签可分为3类:
值栈中存在的对象:模型对象,action对象,request对象
OGNL的跟对象为值栈
值栈对应ValueStack接口,该接口的实现类为OgnlValueStack
OGNL访问对象属性时,若不是跟对象需要添加#
<bean>标签用于创建一个JavaBean实例,创建实例时可以在标签体内使用<param.../>标签为该实例传入属性
ORM为对象关系映射,是面向对象编程语言和关系数据库之间的桥梁
ORM框架的优势:
ORM基本映射规律:
Hibernate的优点:
开发Hibernate应用程序的方式:
对于需要被持久化的POJO对象的生命周期为:
每个配置文件对应一个Configuration对象,代表一个应用程序到数据库的映射配置
PO采用低侵入设计
Configuration用于配置,启动Hibernate,创建SessionFactory实例对象
SessionFactory接口用于初始化Hibernate,创建Session实例,充当是数据源代理
Session接口用于保存更新删除加载和查询持久化对象,充当持久化管理器
关联关系:
基于外键的单向和双向1-1分别为:
one>,且 unique=true 和 one>,且 unique=true,另一端one>
基于主键的单向和双向1-1分别为:
<one-one> 和 两端都<one-one>
Hinbernate的检索方式:
HQL是完全面向对象查询语言
QBC封装了字符串形式的查询,提供了更加面向对象的查询
Query和Criteria都可以充当Hibernate查询语句,其中Criteria用于执行Query查询
QBC适用于生成动态查询语句
QBC把查询语句分解成一组Criterion实例,可读性差
事务具有如下的特性:
声明事务包括下面的内容:
类级别检索策略包括:
关联检索策略:
Spring解决方案主要功能包括:
Spring的特点:
BeanFactory接口是Spring框架的核心接口
对于复杂的以来关系,如果采用构造注入会导致构造器过于臃肿,难以阅读,这时可以使用设值注入
设值注入要求Bean提供一个默认的无参构造方法,并未需要注入的属性对应的setter方法
构造注入可以在构造器中决定依赖关系的注入顺序,有限以来的优先注入
Bean的作用域:
AOP将系统分为两部分:核心关注点和横切关注点
AOP是指面向切面编程
AOP常用术语:
AOP实现策略:
Spring AOP增强类型:
(* 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三个框架的集成步骤:
0 * * * * ? 每1分钟触发一次
0 0 * * * ? 每天每1小时触发一次
0 0 10 * * ? 每天10点触发一次
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 15 10 * * ? 2005 2005年的每天上午10:15触发