框架
1、Spring
1.1 Spring
Spring是一个开源框架,是2003年兴起的轻量级Java开发框架,为解决企业应用开发的复杂性而创建的。简单来说,Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。日常开发中IOC容器使用较多,可以装载Bean,即Java中的类,不用在每次使用类的时候初始化,很少出现new关键字
1.2 IOC
控制反转,是一种降低对象之间耦合关系的设计思想。如:租房子,平常需要我们自己逐个小区寻找房子,然后使用IOC之后,只需要把对房屋的需求告诉中介,就可以找到合适的房屋,中介就相当于Spring的容器
1.3 AOP
面向切面编程,是面向对象开发的一种补充,允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求,如:动态的增加日志、安全或异常处理等。AOP使业务逻辑各部分耦合度降低,提高程序的可重用性,提高开发效率
2、SpringMVC
SpringMvc分离了控制器、模型对象、分派器以及处理程序对象的角色,更容易进行定制
2.1 SpringMVC工作流程:
- 用户向服务器发送请求,请求被Spring前端控制器ServletDispatcherServlet捕获
- ServletDispatcherServlet对请求的url进行解析,得到请求资源标识符,然后根据url,调用HandlerMapping获得该Handler配置的所有相关对象,最后以HandlerExecutionChain对象的形式返回
- ServletDispatcherServlet根据获得的Handler,选择一个合适的Handler Adapter
- 提取Request中的模型数据,填充Handler入参,开始执行Handler。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作
- Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象
- 根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的 ViewResolver)返回给DispatcherServlet
- ViewResolver 结合Model和View,来渲染视图
3、MyBatis
- MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射,MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及总结果集的检索
- MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOS(plain old java objects,普通的Java对象)映射成数据中的记录
- MyBatis是对JDBC的封装,让数据库底层操作变的透明
- MyBatis的操作都是围绕一个SqlSessionFactory实例展开的,MyBatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个实体类对数据库所需要要进行的SQL语句映射,在每次与数据库交互时,通过SqlSessionFactory拿到一个SqlSession,再执行SQL命令