Spring springMvc Mybatis概括总结
一.Spring框架
spring是一个资源整合的开源框架,可以整合其它框架,将程序的调用变得浑然一体,其核心就是IOC和AOP。
1.IOC将类的创建和依赖关系写到配置文件中,由配置文件(注解)注入实现了松耦合(程序运行时,动态的创建对象,注入对象间的依赖,管理对象的生命周期)。
2.AOP是将安全/事务等 于程序逻辑相对独立的功能抽取出来,利用spring的配置文件(注解)将这些功能插入进去(OCP原则,不修改原有类的情况下扩展它的功能),实现了面向切面编程,提高了代码的复用性。
spring如何管理对象?对象的生命周期有多久?如何实现整合?如何实现松耦合
( 1 ).spring IOC容器来负责管理对象的生命周期和对象之间的关系。在配置文件中通过 或者@bean注解 两种方式把创建对象的任务交给spring。在spring内部又有一个很大的map集合 其中key对应 bean标签中的id 或bean注解下的方法名,vlaue就是实例化的对象。
( 2 ).单例对象,理论上和容器的生命周期一致。多例对象,用户使用时创建,用户方法执行完后销毁对象。
在scope属性中配置 singleton为单例模式,prototype是多实例模式。
( 3 ).IOC/DI实现整合,AOP实现松耦合。
AOP
Spring Mvc框架
SpringMVC是一个前台框架与用户进行交互,底层将servlet进行封装 简化程序员的操作过程。通过一套注解,让一个简单的java类变成处理请求的控制器。
SpringMVC与Struts2的区别?
共同点:都是基于MVC模型变现,都是表现层框架。 底层都是servlet,处理请求的机制都是一个核心控制器。
不同点:
1.SpringMVC的入口是servlet,Struts2的入口是Filter.
2.SpingMvc是基于方法设计(单例对象),Struts2是基于类,每次执行都会创建一个动作类(多例对象)。
3.SpringMvc使用更加简洁,支持JSR303处理AJAX更方便。Struts2中的OGNL表达式使页面开发效率相比SpringMvc更高,执行效率没有JSTL高,Struts2的表单标签远没有HTML效率高。
SpringMVC模块核心(基于MVC的分层架构设计思想)
1.DispatcherServlet:前端控制器。 WEB服务器启动时加载。(在web.xml中配置,并配置加载Spring-MVC.xml文件)
2.HandlerMapping:处理器映射器。负责根据请求指派到对应的Controller处理。注册中心。
3.HandlerInterceptor: 处理器拦截器,请求到handler之前拦截。
4.Handler:后端处理器(controller)
5.viewResolver:视图解析器。
MVC设计模式:Servlet+JSP+JavaBean
模式一:JSP
jsp既能当做servlet使用又能当做HTML使用
1.负责处理服务器接收的请求。
2.负责连接数据库进行增删改查操作。
3.负责将结果响应给用户(由tomcat翻译引擎将它翻译成servlet后 ,使用内置的out对象 字符流的方式输出html内容和处理的结果)
缺点:代码无法复用,扩展性差,结构混乱
模式二:JSP+Servlet+JavaBean
JSP负责展示动态的页面,servlet负责处理业务逻辑,JavaBean负责封装数据/访问数据库
实体Javabean:封装数据
业务JavaBean:负责处理业务
Mybatis框架
Mybatis
***是一个持久层框架,内部封装了JdbcAPI,实现ORM对象关系映射(半自动化ORM映射的框架),从而简化了程序员操作数据库的过程。
优点:稳定灵活–动态sql,解耦–sql的维护性/复用性高,学习使用成本低
ORM:ORM是对象的属性和数据库的元数据之间对应关系(参数映射),将程序中的对象自动持久化到关系数据库中。ORM提供了对数据库的映射,不用sql直接编码,能够像操作对象一样从数据库获取数据(Hibernate)