首先分享Iteye的开涛对Ioc的精彩讲解
第一步:导入jar包
4+1:4个核心(beans、core、context、expression)+1个依赖(commons-logging...jar)。
第二步:目标类
编写UserService接口和实现类并且获得UserService实现类和实例。在没有用Spring框架之前的开发中,直接new一个对象即可,学习了Spring之后,将由Spring创建对象实例。IOC(Inverse of Control):将创建对象的控制权反转给了Spring。之后再需要实例对象时,直接从Spring工厂(容器)中获得,只需要将实现类的全限定名配置到applicationContext.xml中去。
UserService接口:
package com.zju.service;
public interface UserService {
public void addUser();
}
UserService接口的实现类:
package com.zju.service.impl;
import com.zju.service.UserService;
public class UserServiceImpl implements UserService{
@Override
public void addUser() {
System.out.println("====添加用户开始了====");
}
}
第三步:applicationContext配置文件
位置:任意,开发中一般放在classpath下(src),名称:约定为applicationContext
添加schema约束:spring-framework-3.2.0.RELEASE/docs/spring-framework-reference/html/xsd-config.html中拷贝
<?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.xsd">
<!-- 配置service
<bean>:配置需要创建的对象
id:用于之后从Spring容器中获得实例时使用
class:需要创建实例的全限定名
-->
<bean id="userServiceId" class="com.zju.service.impl.UserServiceImpl"></bean>
</beans>
第四步:测试
package com.zju.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.zju.service.UserService;
public class TestDemo1 {
@Test
public void demo1(){
//1 获得Spring容器
String xmlPath = "/applicationContext.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
//2 获得内容:不再需要自己去New了,直接从Spring容器中获得
UserService userService = (UserService) applicationContext.getBean("userServiceId");
userService.addUser();
}
}
右键demo1-->run as -->JUnit Test