IOC-Inversion of Control,即控制反转。它不是什么技术,而是一种设计思想。
传统的创建对象的方法是直接通过new关键字,而 spring 则是通过 IOC 容器来创建对象,也就是说我们将创建对象的控制权交给了 IOC 容器。我们可以用一句话来概括 IOC:
IOC 让程序员不在关注怎么去创建对象,而是关注与对象创建之后的操作,把对象的创建、初始化、销毁等工作交给spring容器来做。
IoC(Inversion of Control,控制反转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。
那么IoC是如何做的呢? Spring所倡导的开发方式就是所有的类都会在spring容器中登记并重新命名,所有的类的对象的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
编程环境配置 本书采用的编程环境如下: tomcat :apache-tomcat-8.0.41-windows-x86 eclipse :eclipse-jee-mars-2-win32 JDK:jdk-8u121-windows-i586 Mysql:mysql-5.5.40-win32 1、下载Spring 框架需要的jar包 本小节spring入门程序需要的jar包有如下5个: commons-logging-1.2.jar spring-beans-4.3.6.RELEASE.jar spring-context-4.3.6.RELEASE.jar spring-core-4.3.6.RELEASE.jar spring-expression-4.3.6.RELEASE.jar 读者可到http://commons.apache.org和http://repo.springsource.org/libs-release-local/org/springframework/spring 网站下载,当然,本书的对应案例资源SSM1、2中也有对应的jar包。 |
1、新建web项目
并把5个jar文件拷入WebContent\WEB-INF\lib目录,如下图所示

选中5个jar文件点击右键如下图,选择Build Path–Add to Build Path将5个包导入项目中。

2、编写代码
我们要编写4个代码文件,分别是UserDao.java,UserDaoImpl.java,applicationContext.xml和Test.java文件,它们在项目中的包结构如下:

其中UserDao.java是一个接口,位于dao包内,其代码如下:
package dao; public interface UserDao { public void say(); } |
UserDaoImpl.java是接口UserDao.java的实现类位于impl包内,其代码如下:
package impl; import dao.UserDao; public class UserDaoImpl implements UserDao { public void say() { System.out.println("helloworld Spring!"); } } |
applicationContext.xml是Spring的配置文件,位于src目录内,其代码如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <!-- 将指定类配置给Spring,让Spring创建其对象的实例 --> <bean id="userDao" class="impl.UserDaoImpl"></bean> </beans> |
applicationContext.xml文件黑体字部分使用<bean>标记赵声明了一个bean,该bean的名称为userDao,对应的类为impl包中的UserDaoImpl类,
注意:Spring配置文件的名称和位置没有固定要求,一般建议把该文件放到src下面,名称可随便写,官方建议写成applicationContext.xml。如果觉得这个文件名称太长了,可以写为userdao.xml。
Test.java文件为测试代码文件,位于src内,其代码如下:
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import dao.UserDao; public class Test { public static void main(String[] args) { //1.初始化spring容器,加载配置文件 ApplicationContext appc=new ClassPathXmlApplicationContext("applicationContext.xml"); //2.使用spring容器获取对象 UserDao ud=( UserDao)appc.getBean("userDao "); ud.say(); } } |
运行该java程序,我们会看到在控制台输出“helloworld Spring!”这说明,Spring容器成功的生成了一个bean对象。
Spring 入门程序讲解视频:

