1、(多选)在关于依赖注入,描述正确的是(BC)
A、依赖注入可以增强系统各组件的依赖关系
B、所谓依赖注入,就是明确地定义组件接口,独立开发各个组件
,然后根据组件件依赖关系组装运行的设计模式
C、依赖注入能够降低系统各组件的依赖关系,提倡面向接口编程
D、Spring的依赖注入和控制反转是完全不同的两个概念
解析:依赖注入和控制反转是同一个概念。通过把具体实现之间的依赖转化为对接口的依赖,从而降低模块间的耦合。
*个人觉得说“依赖注入和控制反转是同一个概念”并不恰当,两者是spring实例化bean的两个步骤,但并不等价。
2、(多选)对于Spring的AOP的实现方式下列选项说法错误的是(AD)
A、Spring的Advice采用特定的aop语言,在定义pointcuts不可以使用配置文件
B、以实现接口的方式作为优先,这样可以降低应用程序组件之间的耦合程度
C、Spring不支持属性成员jointponts
D、以上说法都正确
解析:利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(AOP的好处,可背)
Spring的AOP只实现了方法级别的连接点,在J2EE应用中,AOP拦截到方法级的操作已经足够。OOP倡导的是基于get/set方法的访问,而非直接访问域,Spring有足够里有仅仅提供方法级的连接点。
AOP是一种思想,没有"AOP语言"。使用Annotation来实现advice可以减少XML的配置,定义切入点时也无需在XML中进行。
3、下面对Spring中Bean的注入说法正确的是(B)
A、Bean根据注入方式不同可以分为构造方法注入和自动装载。
B、使用构造方法注入构造对象的同时,完成依赖关系的建立
C、在关系的对象很多时,使用构造方法注入更适合
D、构造方法通过constructor-index属性来指定,在该标签下要指定索引的位置
解析:Spring依赖注入的两种方式是构造注入和设值注入。对于构造注入,Spring在创建Bean实例时,需要同时实例化其依赖的全部实例。对于复杂的依赖关系,若使用构造注入,会导致构造器过于臃肿。在bean元素中使用constructor-arg元素来设值属性值的构造函数注入,可以通过该元素的type属性指定参数类型,index属性指定该参数在构造函数参数列表中的索引位置。
4、关于ApplicationContext接口,下列说法错误的是(C)
A、它是beanfactory的子接口
B、ApplicationContext是基于beanfactory而建立的,ApplicationContext继承了beanFactory
的功能
C、fileSystemXmlApplicationContext是其子接口(应说“子实现”?)
D、ApplicationContext提供了对资源文件进行访问的支持
解析:ApplicationContext是BeanFactory的子接口,ApplicationContext对象里面包含了BeanFactory的所有功能,并提供了一些扩展,比如更容易同SpringAOP特性整合,资源文件的处理,Spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和XmlWebApplicationContext。
5、下面关于事务管理说法错误的是(D)
A、Spring事务管理方式包括编程方式、声明式
B、编程式采用的方式来控制事物的边界
C、声明式采用配置xml方式,将事务管理与实际业务代码解耦
D、实现编程事物,可以实现PlatformTransaction接口或是使用事务模板TransactionTemplate
解析:Spring提供的事务管理可以分为两类:编程式和声明式。编程式通过代码实现,比较直接,但是代码量大,重复的代码比较多,不易维护;声明式比编程式更灵活。Spring提供两种方式的编程式事务管理,分别是使用TransactionTemplate和直接使用PlatformTransactionManager。声明式事务管理通过AOP实现,这是最少影响应用代码的选择。
6、以下说法不正确的是(B)
A、Spring是一个轻量级框架,大大简化了java企业级开发
B、Spring是企业级应用开发的一站式选择,可以取代其他已有框架
C、Spring框架最基本的部分是Spring Core模块,提供Ioc和依赖注入
D、Spring AOP是基于Spring Core的符合规范的面向切面编程的实现
解析:略
7、下面对Spring框架的持久化支持说法错误的是(C)。
A、Spring没有自己的持久化方案,它集合了现有的流行持久化框架
B、Spring采用JDBC模板封装了JDBC的数据库操作
C、Spring对各种持久化技术提供了统一的编程方式
D、Spring将数据库访问的checked异常转换为运行时异常
解析:Spring对多个持久化技术提供了集成的支持,借助于Spring框架提供的DAO抽象,开发者能够以统一的方式同数据访问技术(比如JDBC、Hibernate、JDO、TopLink)进行交互。JdbcTemplate是Spring为借助JDBC操作RDBMS而提供的实用模版类,简化了JDBC操作。Spring提供了DataAccessException,这个异常类对现有多种数据库访问技术的异常进行封装,为我们提供了一个与底层数据库无关的异常体系,因此可以方便地处理各种数据访问异常,该异常类是RuntimeException。
8、在一个运行结果的测试类中,有如下代码:
ApplicationContext Context=new ClassPathXmlApplicationContext(“applicationContext”)
UserService uservice=(UserService)Context.getBean(“userservice”)
下列选项中关于Spring的配置文件理解不正确的是(C)
A、Spring的配置文件名字为applicationContext.xml
B、Spring配置文件一般使用bean元素中的id=“userService”
C、UserService是一个接口
D、在配置文件中UserService可以没有属性注入
解析:以上代码中并没有标明userservice是一个接口,所以C错。
9、使用Spring简化Hibernate的开发,不需要的步骤是(C)
A、在Spring配置文件ApplicationContext.xml创建一个名为SessionFactory的bean类的
实现是org.Springframework.orm.hibemate3.LoactionFactoryBean
B、在Dao接口的实现类继承HibernateDaoSupport
C、Dao接口的实现类提供SessionFactory的set/get方法
D、在Spring的配置文件中为Dao注入SessionFactory
解析:HibernateDaoSupport类中已经有了sessionFactory。
10、(多)下面对Spring说法正确的是(BD)
A、Spring不支持对数据库的事务管理
B、Spring支持对业务的事务管理
C、Spring的配置文件必须通过Struts-config.xml通知应用服务器所在的目录
D、Spring实现了AOP思
解析:Spring提供了两种事务管理方式:编程式和声明式。其中声明式事务管理是通过AOP实现的。Spring的配置文件可以通过Struts的插件机制、Servlet、Listener等多种方式加载,通过Servlet或Listener加载时可以在web.xml中通过context-param声明其所在目录