对于ioc,这句话是最明白不过了。[b]
IoC,用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也
就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。[/b]
spring 就是这么一个容器,通过xml来配置各个层。
依赖注入机制减轻了组件之间的依赖关系,同时也大大提高了组件的可移植性,这意味着,组件得到重用的机会将会更多。
注入三种方式:
1 接口注入
2 构造子注入
3 设值注入
通过类的setter方法完成依赖关系的设置。
通过代码可以了解这些机制。
Java的Reflection机制:
看看代码,以前这个东东不熟。 :oops:
IoC,用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也
就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。[/b]
spring 就是这么一个容器,通过xml来配置各个层。
依赖注入机制减轻了组件之间的依赖关系,同时也大大提高了组件的可移植性,这意味着,组件得到重用的机会将会更多。
注入三种方式:
1 接口注入
public class ClassA {
private InterfaceB clzB;
public init(); {
Ojbect obj =
Class.forName(Config.BImplementation);.newInstance();;
clzB = (InterfaceB);obj;
}
……
}
2 构造子注入
public class DIByConstructor {
private final DataSource dataSource;
private final String message;
public DIByConstructor(DataSource ds, String msg); {
this.dataSource = ds;
this.message = msg;
}
……
}
3 设值注入
通过类的setter方法完成依赖关系的设置。
通过代码可以了解这些机制。
Java的Reflection机制:
Class cls = Class.forName("net.xiaxin.beans.User");;
Method mtd = cls.getMethod("setName",new Class[]{String.class});;
Object obj = (Object);cls.newInstance();;
mtd.invoke(obj,new Object[]{"Erica"});;
return obj;
看看代码,以前这个东东不熟。 :oops: