标签:focus out and span 小明 ret path void pen
IOC(Inversion of Controller):控制反转
“控制”指的是在我们的应用程序中创建对象的控制权
“反转”指的是原先在我们应用程序中创建对象都是我们手动去new一个对象,而现在我们将这个创建对象的权利交给spring容器。
DI(Dependency Injection):依赖注入
“依赖”指的是在我们应用程序的开发过程中,Person类中的age属性和name属性
“注入”指的是在创建Person类的过程中,Spring容器根据配置帮助我们将Person类中的age和name属性自动赋值
IOC和DI的区别和联系
IOC强调的是控制权力的转变,是一种编程思想
DI强调的是过程,spring帮我们管理对象的过程中,会帮我们把对象所依赖的属性什么的自动注入到对象中
可以简单的说DI是基于IOC思想的实现
二、举个例子
目前有一个“人”类,里面有age和name属性
package com.zhurouwangzi.entity; ? public class Person { //构造函数 public Person(){ System.out.println("Person被初始化了..."); } ? public void sayHello(){ System.out.println("Hello....."+"年龄:"+age+" 名字:"+name ); } ? private int age; private String name; ? public int getAge() { return age; } ? public void setAge(int age) { this.age = age; } ? public String getName() { return name; } ? public void setName(String name) { this.name = name; } }
这个时候我们想要使用Person对象,需要手动new一个Person对象,然后才能够使用
@Test public void test1(){ Person p = new Person(); p.setAge(18); p.setName("小明"); p.sayHello(); }
使用Spring容器
在applicationContext.xml文件中配置一个bean
<bean id="person" class="com.zhurouwangzi.entity.Person">
<property name="age" value="18"></property>
<property name="name" value="小明"></property>
</bean>
@Test public void test2(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person)applicationContext.getBean("person"); p.sayHello(); }
标签:focus out and span 小明 ret path void pen
原文地址:https://www.cnblogs.com/Infancy/p/12587787.html