IoC/DI
IoC(nversion of Control,控制反转)/DI(Dependency Injection,依赖注入)
IoC:Inversion of Control(控制反转),读作“反转控制”可能会更好理解,不是什么新技术,而是一种设计思想。 基本意思是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。IOC很好的体现了面向对象设计法则之一—— 好莱坞法则:“别找我们,我们找你”;即由IOC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。
IoC理论:
把原本需要程序本身创建对象的功能移交给Spring框架处理,降低了程序的耦合性。使本该主动创建对象的程序变成被动去接收对象。
由高耦合性-->降低耦合性
---->
理想系统
DI:
Dependency Injection(依赖注入),指Spring创建对象的过程中,将对象依赖属 性(常量、对象、集合)通过配置.xml设置给对象。
入门案列:
第一步:编写HelloWorld程序
public class HelloWorld {
private String name;
public void setName(String name) {
this.name = name;
}
public void sayHi() {
System.out.println(name + "你好~");
}
}
-----------------------------------------------------------------------
第二步:在resources目录下配置一个.xml文件(spring-ioc,文件名自定)
<?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">
<!--
id:bean中的id属性,是给这个对象取的一个引用名称,在整个配置文件中必须唯一。便于别的bean对象引用
class:bean中class属性,class属性是这个对象的完整路径(包名 + 类名)
property:如果这个对象中有属性需要设置(比如有一个setXxx()方法),那么在这个bean对象 中需要提供一个
property属性来给这个属性赋值。格式为:
<property name="name" value="girl"></property>
-->
<bean id="helloWorld" class="zheng.HelloWorld">
<property name="name" value="Spring-IoC"></property>
</bean>
</beans>
-----------------------------------------------------------------------
第三步:编写一个测试程序
public class HelloTest {
public static void main(String[] args) {
ApplicationContext context = new
ClassPathXmlApplicationContext("spring-ioc.xml");
// 获取对象
HelloWorld helloWorld = context.getBean("helloWorld",
HelloWorld.class);
// 调用对象中的方法
helloWorld.sayHi();
}
}
-----------------------------------------------------------------------

浙公网安备 33010602011771号