一、Spring是什么
1、 Spring 是一个开源的用于简化企业级开发的分层框架:
Spring框架是Java应用最广的框架。它的成功来源于理念,而不是技术本身,它的理念包括Ioc(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。
2、分层结构:
1) Presentation layer(表示层)
(1) 表示逻辑(生成界面代码)
(2) 接收请求
(3) 处理业务层抛出的异常
(4) 负责规则验证(数据格式,数据非空等)
(5) 流程控制
2) Service layer(服务层/业务层)
(1) 封装业务逻辑处理,并且对外暴露接口
(2) 负责事务,安全等服务以及数据访问逻辑
3) Persistence layer(持久层)
提供透明的数据访问和接口
(1) 封装数据访问的逻辑,暴露接口
(2) 提供方便的数据访问的方案(查询语言, API,映射机制等)
4) Domain layer(域层)
域层就是一堆实体的集合,包括实体的关系。
(1) 业务对象以及业务关系的表示
(2) 处理简单的业务逻辑
(3) 域层的对象可以穿越表示层,业务层,持久层
3、 Spring 源代码是公开的,但是非标准的
Spring 是个框架,软件的半成品。
1)为软件的开发,提供了一站式的解决方案。
(1) 对大量的企业级服务提供了再次的封装,去除重复的代码
(2) Spring 很容易的集成其它的子框架,集成 Struts1、 WebWork、 Hibernate 等
表示层 业务层 持久层
2)采用 Spring 开发的程序,具有松散耦合,易于维护,不依赖于具体的容器的优点
二、 Spring 的优点
1、 采用 J2EE 开发存在的问题:
1) EJB 软件难编写,难测试
2) EntityBean 作为持久化方案,性能比较低下, O/R Mapping 支持不够,不能脱离容器。
3) 设计困难
4) 侵入式方案, EJB 要使用特定的接口
2、为什么要使用 Spring
1) 简化了 J2EE 或非 J2EE 的开发与设计
2) Spring 提供了 IOC 和 AOP 的容器,可以使 java 对象松散耦合,并提供灵活的中间件服务
3) Spring 是个轻量级的框架,并且是一个非侵入式的框架
3、Spring的优点
1)方便程序的测试:Spring对Junit4支持,可以通过注解方便的测试Spring程序
2)方便集成各种优秀框架:Spring不排斥各种优秀框架,其内部提供了对各种优秀框架(如Struts、Hibernate、mybatis等)的直接支持
3)降低 JAVA EE API的使用难度:Spring对JAVA EE开发中非常难用的一些API(JDBC、JanaMail等),都提供了封装,降低应用难度
三、 Spring 的组成
1) Spring Core:核心容器, BeanFactory 提供了组件生命周期的管理,组件的创建,装配,
销毁等功能。
2) SpringContext: 实现了 ApplicationContext 接口, Spring 的上下文, 扩展了核心容器,提
供事件处理、国际化等功能。它还提供了一些企业级服务的功能,提供了 JNDI, EJB, RMI
的支持。
3) Spring Web: 扩展了 Spring 上下文, 提供 Web 应用上下文,对 Web 开发提供功能上的支
持,如请求,表单,异常等。
4) Spring DAO: 提供对 JDBC 的支持, 还提供了 DAO 的支持, 提供事务支持
5) Spring ORM:对现有的 O/R Mapping 封装或支持
6) Spring AOP:提供切面支持,是个轻量级的容器。
7) Spring Web MVC:全功能 MVC 框架,作用等同于 Struts。
四、搭配环境
开发spring至少需要使用的 jar (5个+1个)
spring-aop.jar 开发AOP特性时需要的jar
spring-beans.jar 处理Bean的jar <bean>
spring-context.jar 处理spring上下文的jar <context>
spring-core.jar spring核心jar
spring-expression.jar spring表达式
三方提供的日志.jar
commons.-loggin.jar 日志