标签:ext cat 标识 开发 ice 全路径 cto 加载 win
a.什么是IOC
控制反转(Inversion of Control),把对象的创建和对象之间的调用过程,交给Spring进行管理
b.目的
为了使耦合度降低
1.IOC底层原理
xml解析,工厂模式,反射
第一步 xml配置文件,配置创建的对象
<bean id="dao" class="class.fqqa.UserDao"></bean>
第二步 有service类和dao类,创建工厂类
_1.xml解析:String classValue = class属性值;
_2.通过反射创建对象
class clazz = class.forName(classValue);
(UserDao)clazz.newInstance;
2.IOC接口(BeanFactory)
_1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
_2.Spring提供IOC容器实现两种方式:(两个接口)
__1.BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用
*加载配置文件的时候不会去创建对象,在获取(使用)对象时才去创建对象
__2.ApplicationContext:BeanFactory接口的子接口,提供更多的功能,由开发人员使用
*加载配置文件的时候就会吧配置文件对象进行创建
__3.ApplicationContext接口的实现类
FileSystemXmlApplicationContext
classPathXmlApplicationContext
3.IOC操作Bean管理
_1.什么是bean管理
bean管理指的是两个操作:Spring创建对象,Spring注入属性
_2.bean管理的基本操作
__1.创建对象:<bean id="user" class="com.fqqa.spring5.User"></bean> 创建对象的时候默认是执行无参数构造方法完成对象创建
id属性:唯一标识
class属性:类全路径
name属性(用的不多)
__2.注入属性:
___1.DI:依赖注入,就是注入属性
使用set方法注入,使用有参数构造注入
使用有参数构造进行注入
___2.名称空间注入 可以简化xml配置(了解即可)
__3.xml注入其他属性
注入null值
<property name="address">
<null/>
</property>
注入特殊符号
<property name="address">
<value><![CDATA[<<南京>>]]></value>
</property>
__4.注入外部bean
注入内部bean
<bean id="emp" class="com.fqqa.spring5.bean.Emp">
<!--设置两个普通的属性-->
<property name="ename" value="lucy"></property>
<property name="gender" value="女"></property>
<!--设置对象类型属性-->
<property name="dept">
<bean id="dept" class="com.fqqa.spring5.bean.Dept">
<property name="dname" value="财务部"></property>
</bean>
</property>
</bean>
级联赋值
注入集合属性
<property name="maps">
<util:map>
<entry key="JAVA" value="java"></entry>
<entry key="PYTHON" value="python"></entry>
</util:map></property>
在集合里面设置对象类型值
把集合注入部分提取出来
Spring有两种Bean :普通bean和 工厂bean(FactoryBean)
普通bean:在配置文件中定义bean类型就是返回类型
工厂bean:在配置文件中定义bean类型可以和返回类型不一样
Bean的作用域
在Spring里面创建Bean实例是单实例还是多实例(是否是同一个对象)
在Spring里面默认是单实例对象
bean标签中属性scope设置实例(singleton表示单实例,prototype表示是多实例,request ,session)
bean的生命周期:
1.通过构造器创建bean实例(无参数构造器)
postProcessBeforeInitialization()
2.为bean的属性设置值和对其他的bean引用(调用set方法)
(2.5)把bean实例传递bean后置处理器的方法
postProcessAfterInitialization()
3.调用bean的初始化的方法(需要进行配置)
(3.5)把bean实例传递bean后置处理器的方法
4.bean可以使用了(对象找到了)
5.当容器关闭时候,调用bean的销毁的方法(需要进行配置销毁的方法)
bean的后置处理器,bean的生命周期就有7步(如上)
xml自动装配:根据指定装配规则(属性名称(byName),属性类型(byType)),spring自动将匹配的属性值进行注入
标签:ext cat 标识 开发 ice 全路径 cto 加载 win
原文地址:https://www.cnblogs.com/FQQa/p/13770287.html