首页 > 试题广场 >

下面有关spring DAO,描述错误的是?

[单选题]
下面有关spring DAO,描述错误的是?
  • Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术。
  • 方便的事务管理: Spring的声明式事务管理力度是类级别
  • 异常包装:Spring能够包装Hibernate异常,把它们从CheckedException变为RuntimeException; 开发者可选择在恰当的层处理数据中不可恢复的异常,从而避免烦琐的 catch/throw 及异常声明
  • Spring提供的DAO支持了JDBC、JDO和Hibernate
一开始选了C,然后查了下,C是对的。spring的官方文档有说明:http://shouce.jb51.net/spring/dao.html

10.2. 一致的异常层次

Spring提供了一种方便的方法,把特定于某种技术的异常,如SQLException, 转化为自己的异常,这种异常属于以DataAccessException 为根的异常层次。这些异常封装了原始异常对象,这样就不会有丢失任何错误信息的风险。

除了对JDBC异常的封装,Spring也对Hibernate异常进行了封装,把它们从一种专有的checked异常 (Hibernate3.0以前的版本),转化为一系列抽象的运行时异常。对JDO也是这样。 它可以让你轻松处理大多数持久化异常(这些异常大多是不可恢复的,而且只出现在特定 的层次),而不再需要在DAO中编写讨厌的样板式的catch/throw代码块和异常声明。

对于B,spring官方文档提供了说明。

9.1.2 Spring AOP capabilities and goals

Spring AOP currently supports only method execution join points (advising the execution of methods on Spring beans). Field interception is not implemented, although support for field interception could be added without breaking the core Spring AOP APIs. If you need to advise field access and update join points, consider a language such as AspectJ .
大意就是,spring现在只支持方法级别的织入点,域级别的还没有实现。如果要想使用域级别的织入点,可以考虑AspectJ之类的语言

所以,B选项错了
发表于 2015-09-01 19:53:40 回复(3)
Struts2是类级别的,Spring是方法级别的
发表于 2015-10-15 23:13:26 回复(2)
Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术。 简化 DAO 组件的开发。 Spring提供了一套抽象DAO类供你扩展。这些抽象类提供了一些方法,用来简化代码开发。 IoC 容器的使用,提供了 DAO 组件与业务逻辑组件之间的解耦。所有的 DAO 组件,都由容器负责注入到业务逻辑组件中,其业务组件无须关心 DAO 组件的实现。 面向接口编程及 DAO 模式的使用,提高了系统组件之间的解耦,降低了系统重构的成本。 方便的事务管理: Spring的声明式事务管理力度是方法级。 异常包装:Spring能够包装Hibernate异常,把它们从CheckedException变为RuntimeException; 开发者可选择在恰当的层处理数据中不可恢复的异常,从而避免烦琐的 catch/throw 及异常声明。
发表于 2014-11-21 21:50:06 回复(2)
spring 中事物都是方法级别的  
方法中一个操作失败,其余全部回滚
发表于 2017-06-14 09:52:26 回复(1)
DataAccessException是RuntimeException,是一个unchecked异常,不要求代码去处理这类异常,遵循了Spring的一般理念:异常检测会使代码到处是不相关的catch或throws语句,使代码杂乱无章。C选择是正确的。
发表于 2016-07-08 17:08:13 回复(0)
spring的声明式事务管理是方法级别,spring 事务是基于aop完成,aop切入点是方法级别的.
发表于 2020-02-17 19:41:12 回复(0)
spring mvc是基于方法的设计,而struts2是基于类的设计
发表于 2016-06-09 22:12:23 回复(0)
整理自聚丙烯大神的答案:
Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术。 
1、简化 DAO 组件的开发。 Spring提供了一套抽象DAO类供你扩展。这些抽象类提供了一些方法,用来简化代码开发。 
2、IoC 容器的使用,提供了 DAO 组件与业务逻辑组件之间的解耦。所有的 DAO 组件,都由容器负责注入到业务逻辑组件中,其业务组件无须关心 DAO 组件的实现。 
3、面向接口编程及 DAO 模式的使用,提高了系统组件之间的解耦,降低了系统重构的成本。 
4、方便的事务管理: Spring的声明式事务管理力度是方法级。 
5、异常包装:Spring能够包装Hibernate异常,把它们从CheckedException变为RuntimeException; 开发者可选择在恰当的层处理数据中不可恢复的异常,从而避免烦琐的 catch/throw 及异常声明。
发表于 2019-01-05 22:22:56 回复(0)
b为方法级别
发表于 2019-09-28 17:12:12 回复(0)
spring是方法级别的哦
发表于 2019-05-05 19:05:25 回复(0)
B
发表于 2019-05-01 18:18:45 回复(0)
C
发表于 2019-05-01 09:17:26 回复(0)
Struts2是类级别的,Spring是方法级别的
发表于 2019-04-10 11:11:54 回复(0)

Spring只支持方法级别的


发表于 2019-03-04 10:32:13 回复(0)
@Transactional 也可以放在方法上的
发表于 2018-09-27 13:16:24 回复(0)

springHibernate的支持,主要是通过 HibernateTemplate 

HibernateDaoSupport

让我们自己写的dao类继承 HibernateDaoSupport,从而获得

HibernateTemplate 这个对象

发表于 2018-09-13 12:38:57 回复(0)
Spring的声明式事务管理是方法级别的...Mark一下
发表于 2018-08-06 15:32:11 回复(0)
是方法级别的
发表于 2018-06-19 21:37:57 回复(0)
Spring 事物管理是方法级别的
发表于 2018-06-17 22:21:25 回复(0)
方便的事务管理: Spring的声明式事务管理力度是方法级别的。那类级别不是错了嘛,为什么最后答案是D?
发表于 2018-04-17 04:54:27 回复(0)