2018-03-01_ACCP8.0版本Y2课程_试卷分析

本文深入探讨了Spring框架的关键概念,包括依赖注入、面向切面编程、事务管理、AOP通知类型、拦截器配置及XML特殊字符处理等,旨在帮助读者全面理解Spring的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         该题考的是使用p命名空间实现依赖注入。正确的配置是选项A,其余选项BCD的配置都是错误的,因此该题的正确答案是A

 

           value属性用来注入基本数据类型或字符串的值,ref属性用来注入引用数据类型

   此题主要考查SpringMVC返回json数据的三种方式。SpringMVC返回json数据的三种方式: 1、第一种方式是Spring2时代的产物,也就是每个json视图Controller配置一个JsonView。 2、第二种使用JSON工     具将对象序列化成json,常用工具Jackson,fastjson,gson。 3、第三种利用SpringMVC3的注解@ResponseBody。因此ABC是正确的选项

              此题目考查的是IoC的理解含义 为什么选A,控制反转(Inversion of Control,IoC),也被称为依赖注入,是面向对象编程中的一种设计理念,用来减低程序代码之间的耦合度,因此选项A解释是错误                      的。       因此答案选择A

  

             三种方式都均可以实现Ioc模式,故选d

             

                    <property>标签可以指定调用相应的setter访问器实现依赖注入,需要的是方法而不是属性,value属性用来注入基本类型或字符串的值,ref属性用来注入已经定义好的bean,故bc是错误的

   

         1.afteReturning是什么?   -->是后置增强。

         2.什么是后置增强?   -->方法执行结束过后插入增强处理就叫后置增强。

         3.注意:虽然AfterReturning增强处理可以访问到方法的返回值,但它不可以改变目标方法的返回值

 IOC是控制反转,就是类本身不控制其属性的值,而是交给第三方容器注入。所以不需要通过代码实现,A错误

   IOC是控制反转,就是类本身不控制其属性的值,而是交给第三方容器注入。所以不需要通过代码实现,A错误

      此题目考察的是Spring AOP中触发的类型 A 不正确。因为前置通知实在方法调用前 B 正确。因为抛出后通知是在系统抛出异常时触发 C 不正确,返回后通知是指程序正常返回后触发的通知 D后通知是无        论如何都会触发

             本题考查对Spring IoC的认识,IoC不是面向过程的编程方式,故选a

        依赖注入是将获取属性值的代码转移到类外部,由配置文件完成,不需要编写代码,降低了类之间的耦合度,所以C是错误的

       此题目考查的是Spring的切面编程,springAOP是对面向对象的扩充和发展。

    void init()方法在该拦截器被初始化之后,在该拦截器执行拦截之前,系统会调用该方法,对于每个拦截器而言,此方法只执行一次

      此题目考察的是Spring AOP中的通知 A 不正确。若系统抛出异常,则不会触发”返回后通知”,此答案不正确 B 正确。“后通知”也称最终通知, 无论方法如何结束都会触发的一种通知类型 C 不正确。跟方          法 有没有返回值无关 D 不正确。理由参考BC

        此题目考察的是XML配置中特殊字符的处理 A正确。可以使用<![CDATA[]]>标记处理XML特 殊字符 B正确。把XML特殊字符替换为实体引用 C 不正确。&在XML中是特殊转义符 D 不正确。即使使用双引            号也不能改变&的作用

    

        execution(public * com.pb.service.impl..*(..))说明要添加事务的方法必须是public的,所以A选项错误。 返回值类型为*,表示可以是任何返回类型,包括void,所以B错误

          此题考查的是Spring实现AOP的不同方式的比较。 静态织入是在编译期,切面直接以字节码形式编译到目标字节码文件中,对系统性能无影响,但不够灵活。动态代理是在运行期,目标类加载后,为接            口动态生成代理类,将切面织入到代理类中,需要实现接口,更灵活。所以A、B错误。动态字节码生成的原理是在运行期,目标类加载后,动态构建字节码文件生成目标类的子类,将切面逻辑加入到子            类中,优点是没有接口也可以织入但扩展类的实例方法为final时,无法进行织入;自定义类加载器的原理是,在运行期目标加载前,将切面逻辑加到目标字节码里,可以对绝大部分类进行织入,代码中             若使用了其它类加载器,则这些类将不会被织入。

    

        B答案中<interceptor-stack…/>元素来定义拦截器栈,而不是拦截器, D答案interceptor元素定义拦截器,而不是拦截器栈。故答案选BD

           

              Struts 2拦截器不需要配置web.xml文件

      此题目考查的是使用p命名空间实现依赖注入。 为什么是选A,对于直接量(基本数据类型、字符串)属性,使用语法是p:属性名=”属性值”;对于引用Bean的属性,使用语法是p:属性名-ref=”Bean的id”。 因           此答案选择A

 

          此题考查的是Spring-面向切面编程通切入点表达式,cd说法正确,a中是public方法才满足,b中可能是返回任何类型包括void, 所以正确答案是ab。

     Spring容器有4种注入方式setter注入、构造方法注入、静态工厂注入方法、实例方法注入方法

     @Repository对应数据访问层

 

 

 

     <props><prop>主要完成Properties类型数据注入

 

 

          <interceptor-stack>元素定义拦截器栈,定义时可以再引用其他拦截器栈

      在SpringMVC中可以在Controller的某个方法上加@ResponseBody注解,表示该方法的返回结果直接写入HTTP response body中。  但是实际使用中发现最后生成的response中"Content-Type"的值不正            确。  Spring使用AnnotationMethodHandlerAdapter来处理@ResponseBody,该类再使用一些HttpMessageConverter来具体处理信息。  AnnotationMethodHandlerAdapter使用request header                          中"Accept"的        值和messageConverter支持的MediaType进行匹配,然后会用"Accept"的第一个值写入 response的"Content-Type"。  一般的请求都是通过浏览器进行的,request header中"Accept"的值        由浏览器生成。 

           选项a错在必须。 c,可以定义多个。d,必须跟实际连接点方法返回值一致或者为Object

         @After 最终增强。 @AfterReturning方法返回值的时候,也叫后置增强 @AfterThrowing是异常抛出增强 所以选项b正确

            此题目考查的是使用设值注入实现依赖注入。 为什么不选A,Spring为Bean的属性赋值是通过调用属性setter方法实现的,这种做法被称为&ldquo;设值注入&rdquo;,而非直接为属性赋值,若属性名为              who,但是setter方法名称为setSomebody(),Spring配置文件中应写成name=&rdquo;somebody&rdquo;而非name=&rdquo;who&rdquo;,因此选项A的解释是错误的。 为什么不选D,因为在Spring配                置文件中,<bean>元素通常使用id属性为其指定一个用来访问的唯一名称,class,表示定义的Bean实例的类型,因此选项D是错误的。 因此答案选择B、C

    

     ctx.getBean("user1");此方法返回Object对象,需要强转成指定类型,singleton是默认采用的作用域,即Spring默认为每一个Bean仅创建一个实例,故cd是错的.

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/hsa521/p/8491409.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值