Spring框架学习 一

  1. Spring概述

    • spring是一个轻量级的开源框架

      • eg:如果单纯的servlet实现文件上传,使用fileupload实现,导入两个包,fileupload的jar包和 io的jar包。而使用spring只需要导入spring的jar包,spring的核心jar包只有2M作用。

    • spring解决耦合问题(IOC)使用户只关注逻辑问题,不要考虑对象与对象直接的依赖问题。

    • spring是一站式的框架

      • 表现层(web)  ,业务逻辑层(service), 数据访问层(dao)

      • spring针对三层结构,在每一层都提供技术解决   

        • spring     :业务逻辑层  

        • springmvc      :   表现层

        • jdbctemplate    : 数据访问层

    • spring的体系结构

  2. Spring的IOC

    • 什么是IOC:

      • 控制反转,比如现在有一个类,创建这个类对象,使用普通方式new对象,使用ioc时候,不需要new对象,把对象的创建交给spring完成。

        • spring把对象创建出来,我们直接用就行了

    • ioc的底层原理

      • xml(解析 ),工厂模式, 反射(反射:通过获取字节码文件,操作类中所有的内容)

      • 画图说明:

  3. BeanFactory  bean工厂

    • BeanFactory:ioc容器的基本实现,是spring内部的基础设施,是面向spring本身的,不是提供给开发人员使用的。

    • ApplicationContext:beanFactory的子接口,提供了更多高级特性,面向spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的BeanFactory。

  4. Bean管理(将bean对象注入到ioc容器中)

    • Bean管理

      • 实现方法

        • xml配置文件方式实现

        • 基于注解实现(重要)

      • 使用步骤

        • spring创建对象

        • spirng注入对象

    • xml配置文件创建对象

      • 使用bean标签配置,在bean标签里面使用属性。

        • id属性:唯一标识

        • class属性:类的全路径名

        • (在bean标签里面还有一个属性name属性,name属性和id属性是相同的,name属性类似于java里面的过时方法,针对于之前的struts1框架提供的,在id属性里面不能有特殊符号,在name属性里面可以有/)

      • 创建对象时候,默认也是会执行无参构造器

    • 类的属性初始化

          <!-- 使用set方法注入属性 -->

          <bean id="book" class="com.atguigu.di.Book">

             <!-- 注入属性,使用set方法注入

                 name:注入类属性名称

                 value:注入属性值

             -->

             <property name="bname" value="易筋经"></property>

             <property name="bauthor" value="达摩"></property>

          </bean>

      • 第一种方式:使用set方法注入

        • 在定义的class里面定义属性,生产set方法

        • 在配置文件中进行配置

      • 第二种方式:使用有参构造器注入

        • 创建属性,生产有参构造器

        • 在配置文件中进行配置

  5. Bean的作用域

    • 在bean标签里面使用scope属性设置创建对象是单例还是多例

      • 在默认情况下,是单例,singleton

      • 可以配置为多实例,在scope属性里面使用值prototype

  6. Bean的生命周期

    <bean id="product" class="com.atguigu.bean.Product" init-method="initMethod" destroy-method="destroyMethod">

           <property name="pname" value="红牛"></property>

     </bean>

    • 从对象创建到对象销毁的过程,成为生命周期

    • 扩展:

      • servlet生命周期 :

        • 创建:init( ),servlet在默认情况下是第一次访问时候创建,但是可以配置让在服务器启动时候创建。

        • 服务:service(),每次访问servlet调用service方法,如果get请求调用doGet方法,如果post请求,调用doPost方法。

        • 销毁:destory(),servlet销毁时候调用destory方法。

    • bean的生命周期:(5步)

      • 通过无参构造器创建bean实例。

      • 为bean的属性设置值和对其他bean的引用,(set方法注入属性,调用set方法)。

      • 调用bean的初始化方法(需要进行配置)

      • bean可以使用了(获取到bean对象)

      • 当容器关闭时,调用bean的销毁方法(执行销毁方法,自己设置)

      • eg:

  7. Bean的后置处理器

    • 添加后置处理器之后,bean的生命周期为七步

      • ①通过构造器或工厂方法创建bean实例

      •  ②为bean的属性设置值和对其他bean的引用

      •  ③将bean实例传递给bean后置处理器的postProcessBeforeInitialization()方法

      • ④调用bean的初始化方法

      •  ⑤将bean实例传递给bean后置处理器的postProcessAfterInitialization()方法

      •  ⑥bean可以使用了

      •   ⑦当容器关闭时调用bean的销毁方法

    • 后置处理器需要自己写实现方法

      • postProcessor  里面有两个方法在初始化前和初始化后做一些更加精细化的操作。使用时实现beanPostProcesser接口。对ioc容器中所有的bean都起作用  。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值