首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring IOC器皿之基础篇

2013-10-08 
Spring IOC容器之基础篇一、首先简单熟悉一下Spring框架:简要说明:IOC:相当于一个大的抽象工厂,通过依赖注

Spring IOC容器之基础篇

一、首先简单熟悉一下Spring框架:

                                       Spring IOC器皿之基础篇

简要说明:

IOC:相当于一个大的抽象工厂,通过依赖注入的方式,负责创建对象和管理关系(对象之间的依赖)、Hibernate的session、事务等的管理。

AOP:是一种面向切片的编程思想,使用类似jdk的动态代理的方式,来处理一些可以独立的服务,如,事务、filter等

DAO:对jdbc做了一层封装,同时也有基于HIbernate的封装。

ORM:Hibernate是对JPA规范的一个实现,iBats是基于sql的一个映射器,TopLink是oracle对jdbc做的一个规范等等,Spring对这些框架做了集成。

WEB:Spring对诸如Struts(基于请求驱动)以及JSF(基于事件驱动)的框架做了集成。

Spring是一个主要管理业务处理对象的框架,其核心是IOC和AOP。


二、IOC(Inverse of Control):

在每个框架的中都有一个容器的概念,所谓的容器就是将常用的服务,封装起来,然后,用户只需要遵循一定的规则,就可以达到统一、灵活、安全、方便、快速的目的。

IOC是一个依赖注入DI(Dependence Injection)的方式达到控制反转目的的框架。

控制反转:的优势在于将服务交给容器。

我们对比一下由我们的应用程序负责服务(对象)定位:

public class UserManagerImpl implements UserManager {public void addUser(String username, String password) {//由我们的应用程序负责服务(对象)定位//UserDao userDao = new UserDao4MySqlImpl();UserDao userDao = new UserDao4OracleImpl();userDao.addUser(username, password);}}

如果需要更换实现,如果使用应用程序的定位,我们还需要手动去修改程序,这是一件很糟糕的事情。

现在有了容器时候,这个定位就交给了容器,在程序中,只是一个变量的生命,没有实质的固定的实例化,这个实例化的过程放到了配置文件,框架在启动的时候,遵循一个规律,在对象使用之前,已经实例化,这样就达到了一个动态灵活的目的。

我们看一下,使用容器后的业务处理类(Manager)对数据访问层实现类(DAO)的代码:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" ><bean id="bean1" class="com.bjpowernode.spring.Bean1"><property name="strValue" value="ceshi"></property><property name="intValue" value="123"></property><property name="arrayValue"><list><value>a</value><value>b</value></list></property><property name="list"><list><value> A</value><value> B</value></list></property><property name="set"><set><value>M</value><value>N</value></set></property><property name="map"><map><entry key="k1" value="v1"></entry><entry key="k2" value="v2"></entry></map></property></bean></beans>


四、使用IOC的好处总结:

1、使用容器,控制反转,不再需要使用应用程序主动查找、定位、创建对象,这一切都交给容器统一管理。

2、大量减少了Factory和Singleton的数量,代码层次更加清晰。

3、IOC是一个轻量级的框架容器,具有pojo的优势,没有侵入性,没有对其他api的依赖,也不需要实现特殊接口。

4、减少了代码的耦合,将对象的赋值,放到了配置文件中,更容易处理变化。

上面就是SpringIOC容器基本的配置,更多详细配置,参见这里的api文档。

3楼zs15932616453昨天 22:58
Spring核心,很值得深入学习!
2楼liuyanlinglanq昨天 21:37
学习IOC容器
1楼liuyanlinglanq昨天 21:37
学习IOC容器

热点排行