反射是spring实现Ioc的基础
先来看一下什么是反射:
反射:反射听起来高大上,其实就可以理解为:通过类的路径(就是个字符串)来new一个类:
Class clazz=Class.forName("com.reflect.Users");
System.out.println("ClassLoader:"+clazz.getClassLoader());
System.out.println("clazz.getName:"+clazz.getName());
Method[] methods=clazz.getMethods();
for (int i = 0; i < methods.length; i++) {
System.out.println("clazz.methods:"+methods[i]);
}
IOC
依赖注入,依赖注入的好处就是:如果你的程序中new一个类是需要动态new的,那么得到这个需要new的类的名称之后,就可以动态new出来。IOC就像工厂方法+反射动态生成对象。
IOC就是这个道理,我们先将每个POJO注册到bean容器中,(bean容器可以理解成一个哈希表,key是bean的名字,value是名字对应的实体类)当我们程序中需要动态new一个类的时候,我们只需要用这个类的名字到bean容器中去获得名字对应的实体类就可以,这样的好处是: