Spring IOC XML方式使用
前导内容:
反射:https://www.cnblogs.com/wangid3/p/14159834.html
动态代理:https://www.cnblogs.com/wangid3/p/14159821.html
从传动开发到Spring管理
1)原始多态

2)工厂模式开发

3)工厂内部使用配置,反射获取对象实例

Spring IOC
IOC: Inversion of Control(控制反转)
控制反转:将对象的创建权反转给(交给)Spring。
1.添加jar包
spring-core
spring-beans
spring-context
spring-expression
2.配置applicationContext.xml文件
<?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"> </beans>
3.配置自定义类Bean

4.测试使用:虽然还没开始看源码,原理应该是通过getBean()是通过id 获取到class的值
再通过全路径获取到Class对象,最后newInstance()方式获取实例

IOC与DI(依赖注入)
前提必须有IOC的环境
Spring管理这个类的时候才能将类的依赖的属性值注入(设置)进来
依赖注入:给spring管理类当中依赖的属性,通过配置文件进行赋值的过程
1.给被管理类实现set方法:

2.在配置文件中依赖注入,写上属性值

3.测试:

这里有个问题,如果Spring内部是通过对字段反射,即获取完Class对象,并获取实例:
其实是不需要set方法也能实现的。这个问题等深究源码时自然会明白,暂时过
Field name = clazz.getDeclaredField("name");
name.setAccessible(true);
name.set(p1,"wangid3");
System.out.println(p1);
创建对象的时间:当加载配置文件时候就会创建实例对象(老版本是getBean()时才创建对象)
IOC下篇 注解方式使用IOC https://www.cnblogs.com/wangid3/p/14172513.html
浙公网安备 33010602011771号