一、IOC容器
IOC底层原理
IOC的概念和原理
1.什么是IOC?
(1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
(2)使用IOC目的:为了降低耦合度
2.IOC底层原理
(1)xml解析、工厂模式、反射
IOC 的操作
第一步 xml配置文件,配置创建对象
<bean id="dao" class="com.lp.UserDao"></bean>
第二步 有service类和dao类,创建工厂类
IOC接口(BeanFactory)
1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2.Spring提供IOC容器实现两种方式:(两个接口)
(1)BeanFactory:IOC容器的基本使用,是Spring内部的使用接口,不提供开发人员进行使用
特点:加载配置文件的时候不会创建对象,在获取(使用)对象的时候才会创建对象
(2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
特点:加载配置文件的时候就会吧在配置文件对象进行创建
3.ApplicationContext的主要实现类
IOC操作Bean管理(基于XML)
什么是Bean管理?
(1)Spring 创建对象
(2)Spring注入属性
1.基于xml方式创建对象
<bean id="dao" class="com.lp.UserDao"></bean>
(1)属性介绍:
id属性:唯一标识
class属性:类全路径(包类路径)
(2)创建对象时候,默认是执行无参数构造方法
2.基于xml方式注入属性:
(1)DI:依赖注入,就是注入属性
第一种注入方式:使用set方法注入
①创建类,定义属性和对一个的set方法
②在spring配置文件配置对象创建,配置属性注入
使用property完成属性注入:name:类里面属性名称
value:向属性注入的值
<!--set方法注入属性-->
<bean id="book" class="com.lp.springDemo1.book.Book">
<property name="bname" value="《格林童话》"></property>
<property name="bauthor" value="安徒生"></property>
</bean>
第二种注入方式:使用有参构造注入
<!--构造方法注入属性-->
<bean id="book" class="com.lp.springDemo1.book.Book">
<constructor-arg index="0" value="《西游记》"></constructor-arg>
<constructor-arg index="1" value="吴承恩"></constructor-arg>
</bean>
注意:xml注入其他类型的属性
1.字面量
(1)null值
<property name="bauthor">
<null></null>
</property>
(2)属性值包含特殊符号
①把<>进行转义<,&rt
②把带特殊符号的内容写到CDATA中,如:
<property name="bauthor">
<value><![CDATA[《水浒传》]]></value>
</property>
2.注入属性——外部bean
(1)创建两个类 service类和dao类
(2)在service调用