2018.3.10考试的试题解析
解析:此题考查的是Spring-依赖注入,abd说法正确,c的说法不对Spring的配置文件是完成组件组装的主要场所,常用节点包括<bean>及其子节点< property>,不是<bean-property>,所以正确答案是c。
解析:在Spring 里,创建被调用者实例的工作通常由Spring 容器来完成,然后注入调用者,而不是由编程人员用new关键字实现
解析:本题目考查的是对spring的自动装配的认知,spring通过注解进行自动装配时默认以名字进行装配
解析:该题考的是使用p命名空间实现依赖注入。正确的配置是选项A,其余选项BCD的配置都是错误的,因此该题的正确答案是A
解析:此题目考查的是注入直接量的写法。 为什么不选择B、D,因为直接量的注入要使用<value>标签或直接用value属性,因此B、D选项错误。 为什么选择A、C,因为A选项直接采用<property>标签的value属性注入值,C选项用<value>标签注入值这两种方式都可以注入直接量。 因此答案选择A、C
解析:@Scope注解默认为singleton(单例),只会创建一个该类的对象, 如果是prototype(原型),每次都会创建一个该类的实例。 @Service注解是用于标注一个业务类 所以答案选AC
解析:此题目考察的是Spring的构造器依赖注入 A正确:是使用构造器进行依赖注入的正确方式 B 没有使用注入 C 为set值注入 D 没有这种配置方式
解析:Advice是切面的具体实现,某个特定连接点上执行的动作
解析:ABD选项均正常,C选项的错误是内部Bean不能被其他bean引用,故id属性不是必须的。
![](https://images2018.cnblogs.com/blog/1111303/201803/1111303-20180311153314780-1796089816.png)
解析:此题目考查的AOP的作用。 为什么不选A,因为降低模块之间的耦合度也是AOP的作用之一 为什么不选B,因为使系统容易扩展也是AOP作用之一 为什么选C,因为C选项不属于AOP的作用,另外,AOP是从程序运行角度考虑程序的结构 为什么不选D,因为更好的代码复用也是AOP作用之一
![](https://images2018.cnblogs.com/blog/1111303/201803/1111303-20180311153344009-1555397797.png)
解析:D选项,Spring提供两种方式实现AOP切面的织入:一种是XML配置的方式,一种是annotation注解的方式
解析:此题目考查的是Spring-依赖注入根据不同依赖注入方式的特点及比较。ref 指定了属性对BeanFactory中其他Bean的引用关系。 <property> 用于设置一个属性,如果没有属性赋值和对象引用,bean标签本身是可以单独使用。因此选项C、D的说法是错误的,正确的结果为A、B。
解析:此题目考察的是Spring AOP中的通知 A 不正确。若系统抛出异常,则不会触发”返回后通知”,此答案不正确 B 正确。“后通知”也称最终通知, 无论方法如何结束都会触发的一种通知类型 C 不正确。跟方法有没有返回值无关 D 不正确。理由参考BC
![](https://images2018.cnblogs.com/blog/1111303/201803/1111303-20180311153621572-1334963596.png)
解析:此题目考查的是使用p命名空间实现依赖注入。 为什么是选A,对于直接量(基本数据类型、字符串)属性,使用语法是p:属性名=”属性值”;对于引用Bean的属性,使用语法是p:属性名-ref=”Bean的id”。 因此答案选择A
解析:<value>注入String的值<list>注入list集合<set>注入set集合
解析:此题目考查的是Spring依赖注入的两种不同方式的对比。 A,B,D均描述正确。选项B指setter方法数量多,而构造函数仅靠重载实现。构造注入在对象实例化时就得到所依赖的对象,便于在对象的初始化方法中使用依赖对象,所以选项C是错误的
解析:此题目考查的是使用设值注入实现依赖注入。 为什么不选A,Spring为Bean的属性赋值是通过调用属性setter方法实现的,这种做法被称为“设值注入”,而非直接为属性赋值,若属性名为who,但是setter方法名称为setSomebody(),Spring配置文件中应写成name=”somebody”而非name=”who”,因此选项A的解释是错误的。 为什么不选D,因为在Spring配置文件中,<bean>元素通常使用id属性为其指定一个用来访问的唯一名称,class,表示定义的Bean实例的类型,因此选项D是错误的。 因此答案选择B、C