首页 Spring源码 概述
文章
取消

Spring源码 概述

Spring源码 概述1

1 Spring是什么

  1. 框架
  2. 生态
  3. 扩展性

2 Spring

涉及的基础知识

  1. 反射

    image-20230424233718181

  2. 对象的实例化和初始化

    image-20230424233802396

  3. SpringBean对象的分类

    image-20230424233835529

2.1. IOC

  1. IOC控制反转-思想
    • IOC容器
  2. DI依赖注入-手段

2.2. AOP

2.3. Spring运行过程初步分析

  1. 大致运行过程

    image-20230424211508762

    image-20230424232933112

2.4. Spring中的接口

image-20230424233015480

3 问题

  1. 在容器创建的过程中需要动态的改变bean的信息怎么办?

    1
    
     <property name=url value=${jdbc.url} />
    

    如果想随时修改BeanDefinition怎么办?

  2. Aware 接口到底是什么作用?

    当Spring容器创建的bean对象正在具体操作的时候,如果需要容器的其他对象,此时可以将对象实现Aware接口,来满足当前的需要

  3. 在不同的阶段要处理不同的工作,应该怎么办?

    观察者模式:监听器、监听事件、多播器(广播器)

  4. BeanFactory 和 FactoryBean 的区别?

    • 都是来创建对象的
    • 当使用 BeanFactory 的时候必须要遵循完整的创建过程,这个过程由Spring来管理控制的
    • 当使用FactoryBean只需要调用getObject就可以返回具体的对象,整个对象的创建过程室友用户自己来控制的
1
2
3
4
5
6
7
8
9
10
<beans>
    <bean id=? class=? abstract init-method scope dependon ...>
        <property name=? vale=?/>
        <property name=? ref=?/>        
    </bean>
    <bean id=? class=? abstract init-method scope dependon ...>
        <construcor-arg name=? vale=?/>
        <construcor-arg name=? ref=?/>        
    </bean>
</beans>
1
2
3
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
XXX xxx = ac.getBean(XXX.class);
xxx.xxmethond();
本文由作者按照 CC BY 4.0 进行授权

Spring源码 方法论

Gradle入门