Spring 框架的构成
IOC 控制反转 它是Spring框架的核心
DAO 数据访问对象模块 它是对JDBC的封装和简化
WebMVC 它是Spring 对 java web的支持 以及 MVC设计模式的支持
AOP 面向切面编程 它是对面向对象的扩展
ORM 对象关系映射(是以面向对象的思想访问数据库) Mybatis
什么是IOC?
Inverstion Of Control 控制反转
程序中需要某个对象时 由原来的new的方式 改成了由容器来进行 创建 和
管理 以及维护组件关系。
这样做的好处是 可以大大降低组件之间的耦合度。
Spring 容器
任何的java 类 都可以在Spring容器中创建对象 并由容器进行管理
以及维护组件关系
Spring容器实现了 IOC 和 AOP 机制
Spring 容器的类型 BeanFactory 或者是 ApplicationContext类型
使用Spring容器 完成IOC的步骤
建立一个项目 导入jar包(ioc相关jar包) 拷贝Spring配置
文件到src下
在SPring配置文件中 配置对象创建的说明
<bean id="对象的引用名" class="包名.类名"> </bean>
创建Spring 容器对象 创建对象时需要指定配置文件
使用对应的API 获取对象
—- 以从容器中获取一个日期对象为例
Spring 容器创建对象的三种方式
构造器方式实例化
<bean id="标识符" class="包名.类名"> </bean>
默认调用类型对应的无参构造方法
静态工厂方法实例化
本质上是类型调用对应的静态方法 来获取一个对象 类型名.静态方法名()
比如在java 代码中创建一个 Calendar 类型的对象
<bean id="标识符" class="包名.工厂类名" factory-method="静态方法名"> </bean>
实例工厂方法实例化
本质上是利用一个已经存在的对象 来创建出另外一个类型的对象
<bean id="标识符" factory-method="实例方法名" factory-bean="工厂对象的id">
</bean>
Spring 中对象的作用域
Spring 中 对象默认的作用域 是 单例的 如果希望每次请求 都获取不同的对象
则可以使用 bean标记中的 scope 属性指定作用域。scope 默认的取值是 singleton 设置成 prototype 则为非单例的。 当然这里也有request session 作用域 这到web部分才会涉及。
Spring 容器中的对象的初始化和销毁
初始化
一个对象被容器创建之后 可以通过 beans标记中的 default-init-method 属性来
指定初始化方法,由于这样影响的范围比较大(影响配置文件中所有的对象) 所以对象对应的类型中如果没有对应的初始化方法程序也不会报错。也可以通过bean 标记中的init-method 属性来指定初始化方法,这种方式 只会影响到一个对象 所以对象对应的类型中如果没有对应的初始化方法程序就会报错。
销毁
当一个对象即将消亡时 可以通过 beans标记中的 default-destroy-method 属性来
指定销毁方法,由于这样影响的范围比较大(影响配置文件中所有的对象) 所以对象对应的类型中如果没有对应的销毁方法程序也不会报错。也可以通过bean 标记中的destroy-method 属性来指定销毁方法,这种方式 只会影响到一个对象 所以对象对应的类型中如果没有对应的销毁方法程序就会报错 但是销毁方法只针对单例模式的对象。
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!