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 属性来指定销毁方法,这种方式 只会影响到一个对象  所以对象对应的类型中如果没有对应的销毁方法程序就会报错 但是销毁方法只针对单例模式的对象。


11月      Java

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!