spring
概念:Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。
优势:1. 方便解耦,简化开发
通过
Spring
提供的
IoC
容器,可以将对象间的依赖关系交由
Spring
进行控制,避免硬编码所造 成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可 以更专注于上层的应用。
2. AOP 编程的支持
通过 Spring 的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。
3. 声明式事务的支持
可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理, 提高开发效率和质量。
4. 方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
5. 方便集成各种优秀框架
Spring 可以降低各种框架的使用难度,提供了对各种优秀框架(Struts、Hibernate、Hessian、Quartz 等)的直接支持。
6. 降低 JavaEE API 的使用难度
Spring
对
JavaEE API
(如
JDBC
、
JavaMail
、远程调用等)进行了薄薄的封装层,使这些
API
的
使用难度大为降低。
7. Java 源码是经典学习范例
Spring
的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对
Java
设计模式灵活运用以 及对 Java
技术的高深造诣。它的源代码无意是
Java
技术的最佳实践的范例。
SpringMVC
概念:是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架,
Spring MVC
属于
SpringFrameWork
的后续产品,已经融合在
Spring Web Flow
里面。
Spring
框架
提供 了构建 Web
应用程序的全功能
MVC
模块。
优势:1.
清晰的角色划分
前端控制器(
DispatcherServlet
)
请求到处理器映射(
HandlerMapping
)
处理器适配器(
HandlerAdapter
)
视图解析器(
ViewResolver
)
处理器或页面控制器(
Controller
)
验证器(
Validator
)
命令对象(
Command
请求参数绑定到的对象就叫命令对象)
表单对象(
Form Object
提供给表单展示和提交到的对象就叫表单对象)
2. 分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要。
3.
由于命令对象就是一个
POJO
,无需继承框架特定
API
,可以使用命令对象直接作为业务对象。
4.
和
Spring
其他框架无缝集成,是其它
Web
框架所不具备的。
5. 可适配,通过
HandlerAdapter
可以支持任意的类作为处理器。
6. 可定制性,
HandlerMapping
、
ViewResolver
等能够非常简单的定制。
7.
功能强大的数据验证、格式化、绑定机制。
8. 利用
Spring
提供的
Mock
对象能够非常简单的进行
Web
层单元测试。
9. 本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
10.
强大的
JSP
标签库,使
JSP
编写更容易。
mybatis
概念:mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注
sql 语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和
statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并
将结果映射为 java 对象并 返回。
优势:使用 mybatis 是非常容易的一件事情,因为只需要编写 Dao 接口并且按照
mybatis
要求编写两个配置文件,就可以实现功能