Spring相关面试(看这篇就够了)

1、SSM的工作原理是什么?
1、客户端(浏览器)发出http请求给web服务器,服务器对请求进行解析,如果匹配到DispatcherServlet的请求映射路径,然后将请求转交给DispatcherServlet;
2、DispatcherServlet根据请求信息(包括URL、Http方法、请求报文头和请求参数Cookie等)调用HandlerMapping,解析请求对应的Handler;
3、解析到对应的Handler后,开始由HandlerAdapter适配器处理。
4、HandlerAdapter会根据Handler来调用真正的处理器去处理请求,并处理相应的业务逻辑。
5、处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的视图。
6、ViewResolver会根据逻辑View找到真正的视图。
DispaterServlet通过model对ModelAndView()中的参数进行解析,最终展现出完整的View并返回给客户端。

2、你能说下Spring的实现过程?AOP是通过什么实现的?
Spring的核心主要包括IOC和AOP;
内部最核心的是IOC,即控制反转,就是将一个对象的创建反转给Spring框架来完成,主要实现方式是在Spring的xml配置文件的bean标签中来配置创建对象和调用对象的方法。其中用到的是Java里面的反射技术,在运行时动态的去创建和调用对象。
其次还有一个核心内容是AOP,即面向切面编程,就是在调用某一类对象的具体方法的前后去调用你指定的模块,从而达到对一个模块扩充的功能,
这些都是通过在配置文件中配置来完成的。
其中包含两个重要的概念:静态代理和动态代理。
静态代理就是针对于某个类或者接口编写一个代理类;动态代理是针对于一个方面,利用JDK反射包中的Proxy类为各种接口动态生成代理类。
Spring目的:就是让对象与对象(模块与模块)之间的关系不是通过代码来关联的,而是通过配置文件来说明管理的,Spring是一个容器,只有在容器里的对象才会有Spring所提供的这些服务和功能。

3、Spring中的Bean跟new的对象有什么区别?
Spring实现了对象池,一些对象创建和使用完毕之后不会被销毁,放进对象池中以备下次使用,下次需要这个对象时,不用new直接从池里拿出去来用,节省时间,节省cpu。
new的对象在使用完毕后会统一由JVM进行垃圾回收。

4、Spring、SpringMvc、SpringBoot和SpringCloud的联系与区别?
Spring是一站式轻量级的Java开发框架,核心是IOC和AOP;
SpringMvc是Spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发的一部分;
因为Spring的配置非常复杂,各种XML、JavaConfig、servlet处理起来比较繁琐, 为了简化开发者的使用,从而创造性地推出了SpringBoot框架,默认优于配置,简化了springMvc的配置流程;
Spring Cloud大部分的功能插件都是基于springBoot去实现的,springCloud关注于全局的微服务整合和管理,将多个springBoot单体微服务进行整合以及管理;
SpringCloud依赖于SpringBoot开发,而SpringBoot可以独立开发;

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