该题考的是使用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方法实现的,这种做法被称为“设值注入”,而非直接为属性赋值,若属性名为 who,但是setter方法名称为setSomebody(),Spring配置文件中应写成name=”somebody”而非name=”who”,因此选项A的解释是错误的。 为什么不选D,因为在Spring配 置文件中,<bean>元素通常使用id属性为其指定一个用来访问的唯一名称,class,表示定义的Bean实例的类型,因此选项D是错误的。 因此答案选择B、C
ctx.getBean("user1");此方法返回Object对象,需要强转成指定类型,singleton是默认采用的作用域,即Spring默认为每一个Bean仅创建一个实例,故cd是错的.