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

posted @ 2020-12-22 11:04  wangid3  阅读(66)  评论(0)    收藏  举报