java spring 面试题总结

1.spring 中bean的生命周期(如果你熟悉springboot,比较一下)

   spring bean的生命周期可以分为大概10步骤:

     (1)instantiate bean对象实例化(实例化一个bean,也可以说是new)

       (2) 按照spring上下文对实例化的bean进行配置,也就是IOC注入

    (3)如果这个bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的是spring配置文件中的bean的id.

      (4)如果这个bean实现了BeanFactoryAware接口或applicationContextAware,会调用它实现的setBeanFactory()或上下文对象setapplicationContext,传递的是spring工厂本身。

      (5)如果这个bean实现了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object  obj,String  s)方法,BeanPostProcessor经常被用做是Bean内容的更改,并且由于这个是在bean初始化结束时调用After方法,也可以用于内存或缓存技术,

     (6)如果bean在spring配置文件中配置了init-method属性会自动调用其配置的初始化方法。

     (7)如果类实现了BeanPostProcessor(处理bean),执行postProcessAfterInitialization

       (8)  执行业务处理

    (9)如果Bean实现DisposableBean执行destory

    (10)调用这个bean的spring配置中的destroy-method属性,会自动调用其配置的销毁方法、

2.描述一下spring的工作流程

    1.用户向服务器发送请求,请求被spring前端控制servelt DispathcherServlet捕获,

     2.DispathcharServlet对请求url进行解析,得到请求资源标识符(url),然后根际url调用HandlerMapping获得该handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutiochain对象的形式返回;

    3.Dispathcharservlet根据获得的Handler,选择一个合适的HandlerAdapter.

    4.提取Request中的模型数据,填充Handler入参,开始执行Handler(controller),在这里根据你的配置,spring将帮你做一些额外的工作,比如消息转换,数据转换,数据验证等。

    5.handler执行完后,像Dispathcharservlet返回一个ModelAndView对象;

    6.根据返回的ModelAndView,选择一个合适的ViewResolver返回给DispathcharServlet;

    7.viewResolver结合Model和view渲染视图,将渲染结果返回给客户端;

你可能感兴趣的:(面试题总结)