Spring 面试题分析

  • 开发中主要使用Spring的什么技术 ?

    • IOC容器管理各层的组件
    • 使用AOP配置声明式事务
    • 整合其他框架.?
  • 简述AOP和IOC概念

    • ?AOP:Aspect Oriented Program,面向(方面)切面的编程;Filter(过滤器)也是一种AOP. AOP是一种新的方法论,是对传统OOP(Object-Oriented Programming,面向对象编程)的补充。AOP的主要编程对象是切面(aspect),而切面模块化横切关注点。可以举例通过事务说明。
    • IOC:Invert Of Control,控制反转。也成为DI(依赖注入)其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源。作为回应,容器适时的返回资源。而应用了IOC 之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为也被称为查找的被动形式。
  • 在Spring中如何配置 Bean ?

    Bean 的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法&实例工厂方法)、FactoryBean。

  • IOC容器对Bean的生命周期:?

    • 通过构造器或工厂方法创建Bean实例。
    • 为Bean的属性设置值和对其他Bean的引用。
    • 将Bean实例传递给Bean后置处理器的postProcessBeforeInitialization方法。
    • 调用Bean的初始化方法(init-method)。
    • 将Bean实例传递给Bean后置处理器的postProcessAfterInitialization方法。
    • Bean可以使用了。
    • 当容器关闭时,调用Bean的销毁方法(destroy-method)?。
  • Spring如何整合Struts2?

    整合 Struts2,即由IOC容器管理Struts2的Action:

    • 安装Spring插件:把struts2-spring-plugin-2.2.1.jar复制到当前WEB应用的WEB-INF/lib 目录下。
    • 在Spring的配置文件中配置Struts2的Action实例。
    • 在Struts配置文件中配置action,但其class属性不再指向该Action的实现类,而是指向 Spring容器中Action实例的ID。
  • Spring如何整合Hibernate

    ?整合Hibernate,即由IOC容器生成SessionFactory对象,并使用 Spring的声明式事务。

    • 利用LocalSessionFactoryBean工厂Bean,声明一个使用XML映射文件的SessionFactory实例。
    • 利用HibernateTransactionManager配置Hibernate的事务管理器?。
  • Spring MVC比较Struts2?

    • Spring MVC的入口是Servlet,而Struts2是Filter。
    • Spring MVC会稍微比Struts2快些。Spring MVC是基于方法设计,而Sturts2是基于类,每次发一次请求都会实例一个Action。
    • Spring MVC使用更加简洁,开发效率Spring MVC确实比struts2高:支持JSR303,处理ajax的请求更方便。
    • Struts2的OGNL表达式使页面的开发效率相比Spring MVC更高些.?
  • Spring MVC的运行流程?

    • 在整个Spring MVC框架中,DispatcherServlet处于核心位置,负责协调和组织不同组件以完成请求处理并返回响应的工作。
    • SpringMVC处理请求过程:

      • 若一个请求匹配DispatcherServlet的请求映射路径(在web.xml中指定),WEB容器将该请求转交给DispatcherServlet处理。
      • DispatcherServlet接收到请求后,将根据请求信息(包括URL、HTTP方法、请求头、请求参数、Cookie等)及HandlerMapping的配置找到处理请求的处理器(Handler)。可将HandlerMapping看成路由控制器,将Handler 看成 目标主机。
      • 当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。
      • 处理器完成业务逻辑的处理后将返回一个ModelAndView 给DispatcherServlet, ModelAndView包含了视图逻辑名和模型数据信息。
      • DispatcherServlet借助ViewResoler完成逻辑视图名到真实视图对象的解析。
      • 得到真实视图对象View后,DispatcherServlet使用这个View对ModelAndView中的模型数据进行视图渲染。
  • 说出Spring MVC常用的5个注解:?

    @RequestMapping、@PathVariable、@RequestParam、@RequestBoy、@ResponseBody?。

  • 如何使用Spring MVC完成JSON操作:?

    • 配置MappingJacksonHttpMessageConverter。
    • 使用@RequestBody注解或ResponseEntity作为返回值。
时间: 2024-10-31 22:02:29

Spring 面试题分析的相关文章

精尽 Spring 面试题

以下面试题,基于网络整理,和自己编辑.具体参考的文章,会在文末给出所有的链接. 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 Spring 面试题的大保健. 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去. 注意 1 ,这个面试题,暂时不包括 Spring MVC 部分.主要以 Spring IoC.Spring AOP.Spring Transaction 为主. 注意 2 ,T T Spring 怎么会有这么多问题,艿艿自己面试很多都不太问,跟背书一样.所以整理的过程,真

27道高频Spring面试题,你能答对几个?

1.什么是Spring框架,Spring框架有哪些主要模块Spring框架是一个为Java应用程序开发提供综合.广泛的基础性支持的Java平台. Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发. Spring框架本身也是按照设计模式精心打造的,这使得我们可以在开发环境中安心地集成Spring框架,不必担心Spring是如何在后台工作的.2.使用Spring框架能带来哪些好处下面列举了一些使用Spring框架带来的主要好处.(1)Dependency Inje

CSDN 夏令营程序 试题分析 (2)

题目:若需要在O(nlogn)(以2为底)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是: A.快速排序       B.堆排序            C.归并排序  D.直接插入排序 首先咱们来看一下这个表,稳定排序的有直接插入排序.冒泡排序.归并排序和基数排序. 直接插入排序: 最好的情况下:正序有序(从小到大),这样只需要比较n次,不需要移动.因此时间复杂度为O(n) 最坏的情况下:逆序有序,这样每一个元素就需要比较n次,共有n个元素,因此实际复杂度为O(n-2) 平均

关于阿里的一道笔试题分析

其题目如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #pragma pack(2) class A { public:     int i;     union U     {         char buff[13];         int i;     }u;     void foo() {    }     typedef char* (*f)(void*);     enum{red, green, blue} color; }a; class A

【Spring源码分析】非懒加载的Bean实例化过程(下篇)

doCreateBean方法 上文[Spring源码分析]非懒加载的Bean实例化过程(上篇),分析了单例的Bean初始化流程,并跟踪代码进入了主流程,看到了Bean是如何被实例化出来的.先贴一下AbstractAutowireCapableBeanFactory的doCreateBean方法代码: 1 protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final Object[]

Spring源码分析——BeanFactory体系之抽象类、类分析(二)

上一篇分析了BeanFactory体系的2个类,SimpleAliasRegistry和DefaultSingletonBeanRegistry——Spring源码分析——BeanFactory体系之抽象类.类分析(一),今天继续分析. 一.工厂Bean注册支持——FactoryBeanRegistrySupport 废话不多说,直接看我注释的源码: /* * Copyright 2002-2012 the original author or authors. * * Licensed und

Spring源码分析——BeanFactory体系之抽象类、类分析(一)

上一篇介绍了BeanFactory体系的所有接口——Spring源码分析——BeanFactory体系之接口详细分析,本篇就接着介绍BeanFactory体系的抽象类和接口. 一.BeanFactory的基本类体系结构(类为主): 上图可与 Spring源码分析——BeanFactory体系之接口详细分析 的图结合分析,一个以接口为主,一个以类为主(PS:Spring的体系结构要分析清楚,不得不曲线救国啊!不然27寸屏幕给我画估计都装不下.). 具体: 1.7层的类体系继承. 2.Abstrac

【Spring源码分析】Bean加载流程概览

代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事的都是Java Web的工作,对于程序员来说,一个Web项目用到Spring,只是配置一下配置文件而已,Spring的加载过程相对是不太透明的,不太好去找加载的代码入口. 下面有很简单的一段代码可以作为Spring代码加载的入口: 1 ApplicationContext ac = new Clas

spring源码分析构建

命令如下: ant ant install-maven ant jar package E:\download\spring-framework-3.1.3.RELEASE\build-spring-framework\readme.txt readme.txt文档很重要,里面有非常重要的命令,如果导入eclipse之后,发现少了jar包,执行这些命令,就可以自动下载缺少的jar包. https://github.com/spring-projects/spring-framework这个页面首