[size=medium][color=red]持久层学习笔记[/color][/size]
1.Spring提供了DAO框架,让程序员在开发应用程序时无须耦合于特定数据库技术,而在
异常处理方面,Spring也提供了与特定技术无关的异常处理体系,让应用程序不会因处理特
定异常而耦合于某种数据库或持久层技术。
Spring的DAO框架并不丢出与数据库相关的异常,所有的异常都是
org.springframework.dao.DataAccessException的子类,一个与数据库技术无关通用
异常,而且是RuntimeExcepiton的子类,也即属于Unchecked异常,所以可以选择要不要
处理,不处理的话可以很简单的扔至上层的应用程序。
2.Spring中对于JDBC事务管理提供了两种支持:编程式与声明式;使用声明式的好处是
事务管理不能侵入您所开发的组件,也应当如此,而声明式是依赖它的AOP框架来完成的,所
以可以在配置文件中直接配置代理。
3.Spring中依赖于其AOP框架而实现的功能,一般都有基于传统API,基于XML Schema,
基于Annotation三种方式,其中第一种较繁琐,第二种较精确(可以用正则表达式来匹配具
体的方法),第三种虽然较方便但可能不够精确,所以我觉得一般还是用第二种方式比较好。
后两种方式有一个共同点:就是由于在其配置文件中都没有设置代理对象,所以直接取
得实现某接口的那个实现类的实例即可进行操作。
4.Spring中属于系统层面的服务,也即一个Aspect,一般都是用AOP框架来实现的(至
少目前我所见的是这样的),比如Advice,事务管理,其实具体来说事务管理也是一个
Advice,所以它们有相同的几种方式也就不足为怪了.
1.Spring提供了DAO框架,让程序员在开发应用程序时无须耦合于特定数据库技术,而在
异常处理方面,Spring也提供了与特定技术无关的异常处理体系,让应用程序不会因处理特
定异常而耦合于某种数据库或持久层技术。
Spring的DAO框架并不丢出与数据库相关的异常,所有的异常都是
org.springframework.dao.DataAccessException的子类,一个与数据库技术无关通用
异常,而且是RuntimeExcepiton的子类,也即属于Unchecked异常,所以可以选择要不要
处理,不处理的话可以很简单的扔至上层的应用程序。
2.Spring中对于JDBC事务管理提供了两种支持:编程式与声明式;使用声明式的好处是
事务管理不能侵入您所开发的组件,也应当如此,而声明式是依赖它的AOP框架来完成的,所
以可以在配置文件中直接配置代理。
3.Spring中依赖于其AOP框架而实现的功能,一般都有基于传统API,基于XML Schema,
基于Annotation三种方式,其中第一种较繁琐,第二种较精确(可以用正则表达式来匹配具
体的方法),第三种虽然较方便但可能不够精确,所以我觉得一般还是用第二种方式比较好。
后两种方式有一个共同点:就是由于在其配置文件中都没有设置代理对象,所以直接取
得实现某接口的那个实现类的实例即可进行操作。
4.Spring中属于系统层面的服务,也即一个Aspect,一般都是用AOP框架来实现的(至
少目前我所见的是这样的),比如Advice,事务管理,其实具体来说事务管理也是一个
Advice,所以它们有相同的几种方式也就不足为怪了.