Spring入门学习
Spring起源
创始人:Rod Johnson
Spring Framework开发,基于两个目标:
- 使用声明型事务向EJB发出挑战
- 框架整合
Spring定义
Spring是分层的JavaSE/EE应用一站式的轻量级开源框架。以Ioc(Inverse of control)控制反转和Aop(Aspect Oriented Programming)面向切面编程为核心 。
分层:
web层
web层:spring MVC框架(类似 struts2,是一个mvc框架),提供和其它web层整合方案;
业务层
业务层:声明式事务管理方式、任务调度;
持久层
持久层:jdbc模版开发工具包、和其它持久层hibernate框架整合方案;
上边各层以IOC和AOP作为基础。
一站式:
spring提供各层的解决方案。
轻量级:
相对于EJB来说,好用,简单、方便,spring不依赖应用服务器(weblogic)。
开源框架:
纯java开源框架;
整合众多开源框架;
和Struts2 表现层框架整合;
和Hibernate 持久层框架整合;
和Ibatis、Mybatis持久层框架整合 ;
JavaEE
JavaEE是sun制定成的一套java规范
由JSR(Java Specification Requests)组成:Java规范提案
JavaEE容器组件:
容器:Applet Container , Web Container,Application client Container,EJB Container
组件:Applet , JSP ,Servlet ,EJB,JavaBean
Spring 与javaEE区别:
- Spring轻量级,EJB重量级
- Spring出发点使用声明性事务代替EJB,与JavaEE竞争
- Spring满足JavaEE平台规范
Spring 的特点
- Spring IOC机制-避免编码造成的程序耦合
- AOP(面向切面编程方式)
- 声明式事务控制处理
- 对JDBC的轻量级封装,可以更加灵活地去操作数据库
- 提供了MVC设计模式的解决方案
- 提供了文件上传,定时器等常用工具类
- 对于其他优秀框架的支持(Hibernate,MyBatis,Quartz)。
Spring核心功能
-
Ioc容器
-
Bean生命周期管理
-
SpEl
-
AOP容器
-
注解体系
-
数据验证
…
数据层整合
• 事务管理
• 编程式事务
• 无侵入性声明式事务
• JDBCTemplate支持
• DAO支持
• ORM框架支持
• Hibernate
• JPA
• MyBatis
• …
SpringJDBC与传统JDBC编程对比:
传统JDBC :
- 获取JDBC连接
- 开启事务
- 声明SQL
- 预编译SQL
- 执行SQL
- 处理结果集
- 释放结果集
- 释放Statement
- 提交事务
- 处理异常并回滚事务
- 释放JDBC连接 。
缺点:冗长、重复,显式事务控制,每个 步骤不可或缺,显式处理受检查异常
Spring JDBC : - 声明SQL
- 处理结果集
Spring通过抽象JDBC访问 并提供一致的API来简化 JDBC编程的工作量。我们只 需要声明SQL、调用合适的 Spring JDBC框架API、处 理结果集即可。事务由 Spring管理,并将JDBC受 查异常转换为Spring一致的 非受查异常,从而简化开发。
优点:简单、简介、Spring事务管理,只 做需要做的,一致的非检查异常体系
web层技术
- SpringMVC
- 试图技术
- 和其他WEB框架的集成
外部系统的集成
- WEB Servies
- EJB
- JMS
- JMX
- JCA CCI
- 任务调度
- 动态语言支持
- 缓存