Spring之ioc操作与属性注入

ioc操作
1.就是把对象的创建交给spring进行管理  (起初的调用方法需要new一个对象)
2.ioc操作两个部分:
    (1)ioc的配置文件方式
    (2)ioc的注解方式

ioc底层原理
1.xml配置文件
2.dom4j解决xml
3.工厂设计模式
4.反射 
Spring之ioc操作与属性注入

Spring之ioc操作与属性注入



spring的bean管理
Spring之ioc操作与属性注入
Bean实例化的方式:
    -在spring里面通过配置文件创建对象。
2.bean实例化三种方式实现    
第一种     使用类的无参数构造创建(重点 一般使用这个)
Spring之ioc操作与属性注入
        如果类里面没有无参数的构造的话,出现异常
第二种     使用静态工厂创建
        创建静态的方法,返回类对象
 Spring之ioc操作与属性注入
 Spring之ioc操作与属性注入
第三种     使用实例工厂创建
        创建(普通)不是静态的方法,返回类对象

Spring之ioc操作与属性注入
Spring之ioc操作与属性注入

bean标签常用属性
id属性              起名称
class属性        创建对象所在类的全路径
name属性        起名称,功能同id属性  可以包含特殊符号
scope属性       bean的作用范围
Spring之ioc操作与属性注入
            主要两种
            singleton        默认值,单例 只有一个对象    创建多个对象其实也是同一个对象
            prototype       多例




属性的注入
    -创建对象的时候,向类里面属性里面设置值    

属性注入的方式介绍(三种方式)
在spring框架里面仅支持1.2.方法。

方法一:属性的set方法(最多使用)
方法二带参数的构造方法  
方法三使用接口注入 (较少用)
Spring之ioc操作与属性注入

1.使用set方法注入
Spring之ioc操作与属性注入
2.使用有参数构造注入属性
Spring之ioc操作与属性注入




注入对象类型属性(重点)
Spring之ioc操作与属性注入
Spring之ioc操作与属性注入
3.配置注入文件
(1)配置service和dao对象
(2)在service中配置注入dao对象(注入对象要写ref引用属性)
    Spring之ioc操作与属性注入
注意:ref属性值和上面的id值相对应

注入p名称空间 
Spring之ioc操作与属性注入
Spring之ioc操作与属性注入
Spring之ioc操作与属性注入
注入复杂类型属性值(利用set方法注入)
Spring之ioc操作与属性注入

Spring之ioc操作与属性注入
   


IOC和DI的区别
ioc:控制反转,把对象的创建交给spring
DI:依赖注入,向类里面的属性中设置值

关系:依赖注入不能单独存在,需要在ioc的基础之上完成


spring整合web项目原理
1.加载spring核心配置文件
Spring之ioc操作与属性注入
        new对象,功能可以实现,效率很低
2.实现思想:把记载配置文件和创建对象过程,在服务器启动时完成
3.实现原理
(1)ServletContext对象
(2)监听器
具体使用:
  • 在服务器启动时,为每个项目创建一个ServletContext对象
  • ServletContext对象创建时,使用监听器可以可以监听具体到ServletContext对象在什么时候创建
  • 使用监听器监 听到ServletContext对象创建时,
  •         加载spring配置文件,把配置文件配置对象创建
  •         把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
  •         获取对象时,到ServletContext域得到(getAttribute方法)