Spring框架简介IoC

Spring框架

Spring框架是Java应用最广泛的框架。它的成功来源于理念,而不是技术本身,其核心理念包括IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)

Spring IoC 简介

IoC是一个容器,在Spring中,它会认为一切的Java资源都是[Java Bean][1],容器的目标就是管理这些Bean和它们之间的关系:

  1. Spring IoC里面装载的各种Bean,可理解为Java的各种资源,包括Java Bean的创建、事件、行为等,它们由IoC容器统一管理
  2. Java Bean之间存在一定的依赖关系,比如班级是依赖于老师和学生组成的,假设老师和学生都是Java Bean,那么这二者之间形成了依赖关系;
  3. Spring IoC管理对象和其依赖关系,采用的不是人为的主动创建,而是有Spring IoC 自己通过描述创建的,也就是说Spring 是依赖描述完成对象的创建及其依赖关系的。

插座案例

使用
使用者
国家插座标准接口 Socket
插座1 Socket1
插座2 Socket2

有两种插座可供选择,具体使用哪种?我们可以通过代码来实现使用插座1(Socket1)
Socket1代码片.

// 使用插座1
Socket socket = new Socket1();
user.setSocket(socket);
user.userSocket();

使用如上代码后,国家插座标准接口(Socket)就和插座1(Socket1)捆绑在一起了。这样有一个弊端:如果要使用其他的插座,就需要修改代码。这种情况Socket接口和其他实现类Socket1耦合了。
Socket2代码片.

// 使用插座2
Socket socket = new Socket2();
user.setSocket(socket);
user.userSocket();

一个大型互联网的对象成千上万,如果是不断修改,那么对系统的可靠性将是极大的挑战,Spring IoC 解决了这个问题。
首先,我们不使用new的方法来创建对象,而是使用配置的方式,然后让Spring IoC容器自己通过配置去找到插座。先用一段**XML**描述插座和用户的引用插座1。
代码片.

// 使用Spring IoC 注入插座1给用户
<bean id="socket" class="Socket1"/>
<bean id="user" class="xxx.User">
	<property name="socket" ref="socket"/>
</bean>

这里不是Java代码,而是XML配置文件,换句话说只要配置切换为:

// 使用Spring IoC 注入插座2给用户
<bean id="socket" class="Socket2"/>
实例化
插座2
国家插座标准接口 Socket
使用者
配置信息:我要插座2
插座1

你可能感兴趣的:(ssm框架系列)