一、概述
1. 对象的创建:new
优点:1)简单、明了
2)代码可读性强
缺点:1)代码耦合度高
2)扩展性不强
3)不好维护(一个创建对象要修改,所有都要改)
2. 工厂创建对象:
优点:1)对象的创建统一放在一个地方
2)维护性强,当创建的对象要改变时,易于修改,可创建当前对象的兄弟类、子类等
缺点:1)对创建的对象控制能力不强
2)无法控制对象的生命周期
3)创建的对象之间的依赖关系没法处理
3. 容器创建对象:
优点:1)面向接口编程
2)对创建的对象的控制能力很强
3)对象之间的依赖关系可降低到最低
4)对于依赖的对象可以自动生成注入
缺点:1)需引入框架
2)代码不好调试
3)代码较复杂
Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架。可以和其他框架一起使用:spring与Struts,spring与hibernate(起到整合作业的一个框架)
Spring 提供了一站式解决方案:
1)Spring Core Spring 的核心功能:IOC容器,解决对象创建及依赖关系
2)Spring Web Spring 对Web模块的支持
---->可以与Struts整合,让Struts的action创建交给spring
---->spring mvc模式
3)Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】
4)Spring ORM spring对orm的支持:
à 既可以与hibernate整合,【session】
à 也可以使用spring的对hibernate操作的封装
5)Spring Aop 切面编程
6)SpringEE spring 对javaEE其他模块的支持
二、开发步骤
Spring各个版本中:
在3.0以下的版本,源码有spring 中相关的所有包【Spring功能+依赖包】如:2.5版本。在3.0以上的版本,源码中只有Spring的核心功能包【没有依赖包】(如果要用依赖包,需要单独下载!)
1)源码,jar文件:spring-framework-3.2.5.RELEASE
commons-logging-1.1.3.jar 日志
spring-beans-3.2.5.RELEASE.jar bean节点
spring-context-3.2.5.RELEASE.jar spring上下文节点
spring-core-3.2.5.RELEASE.jar spring核心功能
spring-expression-3.2.5.RELEASE.jar spring表达式相关表
以上是必须引入的5个jar文件。
2)核心配置文件:applicationContext.xml
Spring 配置文件:applicationContext.xml/bean.xml
约束参考:
spring-framework-3.2.5.RELEASE\docs\spring-framework-reference\htmlsingle\index.html
2.1 SpringIOC容器
1)创建对象
SpringIOC容器,是Spring核心内容。
作用:创建对象 & 处理对象的依赖关系
IOC容器创建对象:
创建对象,有几种方式:
1)调用无参数构造器
2)带参数构造器
3)工厂创建对象
工厂类,静态方法创建对象
工厂类,非静态方法创建对象
2)对象依赖关系
Spring中,如何给对象的属性赋值?【DI,依赖注入】
1)通过构造函数
通过类型设置属性值:
通过索引位置设置属性值
通过名字设置属性值
2)属性注入
3)普通属性依赖:(属性注入)
4)自动装配
5)注解
三、Spring与Struts框架整合
Spring,负责对象创建
Struts,用Action处理请求
Spring 与 Struts框架整合,
关键点:让Struts框架action对象的创建,交给Spring完成
Spring 与 Hibernate整合:
步骤:
引入jar文件
1)引入struts .jar相关文件
2)spring-core 相关jar文件
3)spring-web 支持jar包
spring-web-3.2.5.RELEASE.jar 【Spring源码】
struts2-spring-plugin-2.3.4.1.jar 【Struts源码】
配置:
4)配置XML
struts.xml 【struts路径与action映射配置】
bean.xml 【spring ioc容器配置】
web.xml
【核心过滤器: 引入struts功能】
【初始化spring的ioc容器】
【初始化spring的ioc容器】
查看api。