什么是IOC?
- IOC: Inversion of Control(控制反转)。
控制反转:将对象的创建权反转给(交给)Spring。
在使用Spring框架之后,对象的实例不再由调用者来创建,而 是由Spring容器来创建,Spring容器会负责控制程序之间的关 系,而不是由调用者的程序代码直接控制。这样,控制权由应 用代码转移到了Spring容器,控制权发生了反转,这就是Spring的控制反转
创建web项目,引入jar包
代码(IOC的底层实现)
1.创建接口
package com.rick.spring.demo1;
public interface UserDao {
public void save();
}
2.接口的实现类
package com.rick.spring.demo1;
public class UserDaoImpl implements UserDao{
@Override
public void save() {
System.out.println("程序执行了。。。。");
}
}
3.applicationContext.xml配置文件
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id = "userDao" class = "com.rick.spring.demo1.UserDaoImpl"></bean>
</beans>
4.编写测试类
package com.rick.spring.demo1;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringDemo1 {
// @Test
// public void demo1() {
// UserDao uservice = new UserDaoImpl();
// uservice.save();
// }
@Test
public void demo2() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
userDao.save();
}
}
5.结果