Spring 的一些思考

    科技2022-07-14  153

    遵循带着目的去看源码学习的规则,研究源码前先提出问题:

    1 bean 注入方式   按照指定id注入  按照class的type注入  

    问题  如id重复   在同一个xml文件中会报错   在多个xml文件中在后面加载的bean 同一个id会覆盖之前加载的bean

    2 配置bean 为什么需要class属性? 反射加载bean 是不是需要类的全限定名,也就是坐标?

    3 property set注入  constructor-arg 构造器注入的源码实现

    4 所有的bean交给Spring管理, Spring是如何管理bean的生命周期的?

    5 Spring  对bean 创建和销毁前后的方法增强   (代理模式: 控制对象行为,装饰着模式: 包装对象,增强对象功能)

    6 Spring 如何处理bean之间的依赖关系,循环引用的解决处理

    7 子容器,父容器,子容器可访问父容器的资源但父容器不能访问子容器的资源。事物等配置在父容器中可全局使用

    ClassPathXmlApplicationContext 会找 projectName/src/main/resources 下的路径开始  ApplicationContext.xml

    FileSystemXmlApplicationContext  会从  projectName下的路径开始   /src/main/resources/ApplicationContext.xml

     

    Spring 作为基础框架需要有以下特点:

    1 好用

    2 适用

    3 容易扩展

    4 容错

    5 方便升级维护

     

    实现方法: 1 配置文件 2 接口 (模板方法模式: 提供接口可抽象类实现基础方法,其他实现交给子类实现)

     

    对Interface的理解:

    1 接口是对某一类行为的高度抽象,说明了要做什么,没说如何去做。

    2 接口间是隔离的(每个接口承担了某一类的独立完成功能)

    3 定义一个接口集成多个接口 可以聚合多个接口的功能于一个接口。提供更强大便于使用的功能

    4 如何看源码:

        1 看顶层接口功能

        2 看组合接口功能

        3 看具体实现

    Processed: 0.015, SQL: 8