一、Spring原理:
1:核心技术
Spring的两大技术要点便是,一个AOP(面向切面编程),一个IOC(控制反转),而AOP是什么呢,就好比从c语言面向过程编程—>java面向对象编程—>Spring面向切面编程,一步步的从抽象走向形象,它可以为某一类对象 进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的模块)从而达到对一个模块扩充的功能。这些都是可以通过配置类达到的。 IOC起到了将对象创建的权力赋予了容器作用,这样我们就可以在不用new的情况下通过配置文件利用反射机制进行对象的动态创建了。
2:
静态代理:
针对每个具体类分别编写代理类,针对一个接口编写一个代理类, 通常情况下, 静态代理中的代理类和委托类会实现同一接口或是派生自相同的父类。
动态代理:
针对一个切面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类,这种情况下,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。相比于静态代理, 动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类的函数。
二、SpringMVC原理:
1、 用户发送请求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 HandlerMapping处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回回给DispatcherServlet。
4、 DispatcherServlet调用HandlerAdapter处理器适配器。
5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、 Controller执行完成返回ModelAndView。
7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、 ViewReslover解析后返回具体View。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、 DispatcherServlet响应用户。
三、MyBatis工作原理:
1:MyBatis的主要作用呢就是对JDBC的封装,让用户进行对数据库操作时更加的便捷,MyBatis 最强大的特性之一就是它的动态语句功能,完美的解决了JDBC繁琐的sql语句书写