javaee期末知识点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hibernate工作原理及为什么要用?

1.读取并解析hibernate.cfg.xml配置文件

2.读取并解析映射信息

3.创建SessionFactory

4.打开Sesssion

5.创建事务Transation

6.持久化操作

7.提交事务

8.关闭Session

9.关闭SesstionFactory

hibernate是基于ORM对象关系映射

为什么要用:

1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。简化DAO 层的编码工作

3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

4. hibernate的性能好,是个轻量级框架。映射的灵活性出色。支持各种关系数据库,从一对一到多对多的各种复杂关系。

Struts2流程如下:

1、客户端浏览器发出HTTP请求。

2、根据web.xml配置,该请求被FilterDispatcher接收。

3、根据struts.xml配置,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton。

4、Action调用业务逻辑组件处理业务逻辑,包含表单验证。

5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

6、返回HTTP响应到客户端浏览器。

Struts 2常用标签:

//用于分支控制、组合使用;

降集合迭代输出

包含一个jsp页面/servlet的输出

为其他标签提供参数

Struts的validate框架是如何验证的?

在struts配置文件中配置具体的错误提示,在FormBean中的validate()方法具体调用。

Spring两大功能?

控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直

接操控。依赖注入:组件之间的依赖关系由容器在运行期决定,由容器动态的将某种依赖关系注入到组件之中。

IOC 和AOP

控制反转模式,不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务

连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。

面向方面的编程

面向方面的编程(AOP)是通过预编译方式和运行期动态代理,实现再不修改源代码的

情况下给程序动态统一添加功能的一种技术。它允许程序员对横切关注点或横切典型的职责

分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影

响多个类的行为封装到可重用的模块中。

AOP 和IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复

杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和Java 类中才能实现日志功能。在AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优势就是Java 类不需要知道日志服务的存在,也不需

要考虑相关的代码。所以,用Spring AOP 编写的应用程序代码是松散耦合的。

AOP 的功能完全集成到了Spring 事务管理、日志和其他各种特性的上下文中。

简述对Ioc的理解?Spring实现DI的几种方式?

IoC是一种设计模式,它反转的是依赖对象的获取方式(注入和非注入)。可以把IoC模式看做是工厂模式的升华,认为IoC就是一个大工厂,只不过这个大工厂里要生成的对象都

是在XML文件中给出定义的,然后利用Java 的反射机制,根据XML中给出的类名生成相应的对象。从实现来看,IoC是把以前在工厂方法里写死的对象生成语句,改变为由XML 文件来定义,也就是把“工厂”和“对象生成”这两者独立分隔开来,目的就是提高灵活性和

可维护性。

1.设置注入(通过set方法为目标bean注入属性)

2.构造注入(利用构造函数来设置)

Hibernate对象的三种状态并举例说明

瞬态、游离态和持久态,三种状态转化的方法都是通过session来调用

1.瞬时状态:

通过session的save()和saveOrUpdate()方法可以把一个瞬时对象与数据库相关联,

并把瞬时对象携带的信息通过配置文件所做的映射插入到数据库中,这个瞬时对象就成了持久化对象,拥有和数据库记录相同的id标示

瞬时对象的特点是:

(1)不和Session实例关联

(2)在数据库中没有和瞬时对象关联的记录

2.持久化状态

持久对象总是与Session和Transaction相关联,在一个Session中,对持久对象的改变

不会马上对数据库进行变更,而必须在Transaction终止,也就是执行commit()之后,才在数据库中真正运行SQL进行变更,持久对象的状态才会与数据库进行同步

使用find(),get(),load()和iterater()等方法查询到得数据对象,都是持久化

对象;如果一个瞬时对象被持久对象引用,则该对象也会自动变为持久对象。

如果使用delete()方法,它就会变为瞬时对象;当一个Session执行close()或clear()、evict()之后,持久对象就会变为托管对象。

持久对象的特点:

(1)和Session实例关联

(2)在数据库中有和持久对象关联的记录

Ajax功能

异步交互、动态更新web页面(数据验证、按需取数据、自动更新页面)无刷新机制spring bean作用域有以下5个

singleton:单例模式,当spring创建applicationContext容器的时候,spring会初始化所有的该作用域实例,加上lazy-init就可以避免预处理;

prototype:原型模式,每次通过getBean获取该bean就会新产生一个实例,创建后spring 将不再对其管理;

====下面是在web项目下才用到的===

相关文档
最新文档