• Spring基础知识记录


      1.spring框架的优点

        a.方便解耦,简化开发

        b.AOP编程支持

        c.声明式事务管理

        d.方便程序测试

        e.方便集成其他框架

        f.降低JAVAEE API使用难度

      2.spring核心结构

        a.spring核心容器:管理Bean的创建、配置、管理   包含springbean工厂 为spring提供DI的功能

        b.面向切面编程:帮助应用解耦

        c.数据访问与集成

        d.Web

        e.Test

      3.spring核心思想

        1.IOC:控制反转   他是一种思想,描述的是JAVA中对象创建 管理交由spring容器完成。

          a.解决了对象之间的耦合问题。

        2.DI:依赖注入  对象的其他依赖对象注入  (A类中依赖B类  需要将B类注入给A)

          BeanFactory: 是个Bean工厂   负责生产和管理bean 的工厂,是IOC容器最底层的接口,是Spring用来管理和装配普通Bean的IOC容器。

          FactoryBean:是个Bean 是Spring 提供工厂Bean的一个接口,生成某一个类型Bean实例,可以自定义Bean 的创建过程。

          ApplicationContext 是它的一个子接口,具有Beanfactory 所有功能  是容器的高级接口   具有国际化、资源访问等待

        3.AOP:面向切面编程(OOP面向对象)

          解决了什么问题?

            在不改变原有业务逻辑情况下,增强横切逻辑代码,在根本上解耦合,避免横切代码重复

          a.切: 指 横切逻辑代码   原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以⾯向横切逻辑

          b.面:横切逻辑代码往往影响多个方法  每个方法都如同一个点  多点成面。

          实现方式:

      4.spring bean 的生命周期

        1.单列模式下

          a.对象出生:创建容器,对象就被创建了

          b.对象活着:容器在,对象就一直或者。

          c.对象死亡:当销毁容器时,对象就被销毁了

          单列模式的bean生命周期与容器相同

        2.多列模式      

          a.对象出生:创建容器,对象就被创建了

          b.对象活着:容器在,对象就一直或者。

          c.对象死亡:对象长时间不使用,被jvm回收

          多例模式的bean对象,spring框架只负责创建,不负责销毁。

          实例化bean==>设置对象属性==>处理Aware接口==>BeanPostProcessor(这里可以对bean做一些自定义处理)==》InitializingBean 与 init-method:如果配置文件配置这个init-method 则在这个步骤调用其配置的初始化方法==>如果bean实现了BeanPostProcessor接口,将调用postProcessAfterInitialization由于这个方法是在Bean初始化结束时调用的,所以可以被应用于内存或缓存技术==>DisposableBean:当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy()方法==>destroy-method 最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

  • 相关阅读:
    [PHP] class_exists类不存在时会调用__autoload函数
    [Redis] Redis的消息机制- 发布订阅
    [发电] 现在正式入驻爱发电平台
    [MySQL] PHP IP登录限制的实现
    [Redis] 哈希表的Rehash机制
    [Redis] redis的hash类型底层结构哈希表
    [Linux] ls命令的几个常用参数实现按时间/文件大小排序
    [Go] 在gin框架gorm下查询一对多的数据
    [Redis] list底层的数据结构
    [GO]go redis实现滑动窗口限流-redis版
  • 原文地址:https://www.cnblogs.com/qi2332356/p/13509760.html
Copyright © 2020-2023  润新知