IOC
- IOC(inversion of controller),控制反转,简单来说就是将实例化对象的权力交给spring。
- 代码演示
- 创建一个bean
- 在src下创建applicationContext.xml,具体配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <!--scope的默认值是:singleton(单例),对应还有prototype(多例)--> <bean name="bean1" class="cn.ade.domain.Bean1"/> </beans>
- 测试
public class Test01 { @Test public void test01() { // ApplicationContext是BeanFactory的一个子接口, ClassPathXmlApplicationContext是AppliCationContext的实现类 // ClassPathXmlApplicationContext类会在classpath路径下查找,也就是编译后的classes路径下; // FileSystemXmlAppliCationContext类根据文件路径获取 // 创建实用的Bean工厂对象,在加载ApplicationContext配置文件的时候,即创建所有配置文件中的对象,立刻加载 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); // 获取指定类的对象 Bean1 bean1 = (Bean1) context.getBean("bean1"); // 执行对象方法 bean1.show(); } }
DI
- DI(dependency injection),依赖注入,在spring框架负责创建bean对象时,动态的将其依赖的对象注入到bean组件中
- 代码演示
<bean id="bean2" class="cn.ade.domain.Bean2"> <!--对应属性必须提供get、set方法--> <property name="info" value="show"/> </bean>
public class Test02 { @Test public void test01() { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Bean2 bean2 = (Bean2) context.getBean("bean2"); System.out.println(bean2.getInfo()); // show } }