Spring之ioc操作与属性注入

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

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

Spring之ioc操作与属性注入_第2张图片



spring的bean管理
Spring之ioc操作与属性注入_第3张图片
Bean实例化的方式:
     - 在spring里面通过配置文件创建对象。
2.bean实例化三种方式实现     
第一种     使用类的无参数构造创建(重点 一般使用这个)

         如果 类里面没有无参数的构造的话,出现异常
第二种      使用静态工厂创建
         创建静态的方法,返回类对象
  Spring之ioc操作与属性注入_第4张图片
 
第三种      使用实例工厂创建
         创建(普通)不是静态的方法,返回类对象

Spring之ioc操作与属性注入_第5张图片


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




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

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

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

1.使用set方法注入
Spring之ioc操作与属性注入_第8张图片
2.使用有参数构造注入属性





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

注入p名称空间 
Spring之ioc操作与属性注入_第12张图片


注入复杂类型属性值(利用set方法注入)
Spring之ioc操作与属性注入_第13张图片

Spring之ioc操作与属性注入_第14张图片
   


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

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


spring整合web项目原理
1.加载spring核心配置文件

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

你可能感兴趣的:(JavaWeb,框架)