Spring源码分析

1、核心基础

1(常规),2(部分内部原理),3(专业训练)

1(spring.xml) 2(注解)

1、核心注解

注解作用备注
@Bean容器中注册组件
@Primary同类组件如果有多个,标注主组件
@DependsOn组件之间声明依赖关系
@Lazy组件懒加载(最后使用的时候才创建)
@Scope声明组件的作用范围(SCOPE_PROTOTYPE,SCOPE_SINGLETON,)
@Primary同类组件如果有多个,标注主组件
@Configuration声明这是一个配置类,替换以前(beans.xml)理解proxyBeanMethods
@Controller
@Service
@Repository
@Component
@Indexed加速注解,所有标注了@Indexed的组件,直接会启动快速加载
@Order数字越小优先级越高,越先工作
@ComponentScan包扫描
@ComponentScans包扫描
@Conditional条件注入 1,2 @ConditionalOnMissingBean自定义
@Import导入第三方jar包中的组件
@ImportResource导入以前的xml配置文件,让其生效
@Profile基于多环境激活
@PropertySource外部properties配置文件和JavaBean进行绑定.结合ConfigurationProperties
@PropertySources
@Autowired自动装配
@Qualifier精确指定
@Value取值、计算机环境变量、JVM系统。xxxxSpringBoot支持各种外部化配置

2、核心接口

Spring在干嘛?

容器—装所有的组件----组件的功能扩展(容器在启动期间要做好的)

接口:(高度扩展,不满意底层,自己写一个实现类,直接替换)

​ 充电:(type-c)

多态、继承、封装

设计模式

方法论:

分析Spring源码;

  • 1、变量名、类名、方法名 - 见名知意;(简单)

  • 2、遵循相关的设计模式(难)

  • 3、遵循规范(JSR)(难)

  • 4、以后实现了某个接口,这个类后缀就用接口名。

1、生命周期

  • InitializingBean:初始化组件; 组件创建完对象,赋值好以后调用一次

  • DisposableBean:销毁组件; ioc.close()会被调用。

  • BeanPostProcessor:Bean的后置处理器;后置增强器:在组件创建对象以后对组件增强

    • Spring的大核心
    • postProcessBeforeInitialization:初始化之前 进行 功能增强(组件创建完对象,并且set方法默认调用完成后执行)
    • postProcessAfterInitialization:初始化之后 进行 功能增强(属性设置完,回调完成afterPropertiesSet(系统里面所有的赋值都完成了))
    • AutowiredAnnotationBeanPostProcessor(Autowired注解的后置处理器)
      • @Autowired是怎么给组件中进行自动装配就利用AutowiredAnnotationBeanPostProcessor
    • 后置处理器(Bean增强器)。几乎很多功能都是他增强的。
    • AOP的一部分也是后置处理器;
    • 后置处理器可以使用@Ordered接口规定谁先运行。
  • BeanFactoryPostProcessor:BeanFactory后置器:Bean工厂的后置处理器

AOP咋实现的?

  • @EnableAspectJAutoProxy 会给容器中导入 AnnotationAwareAspectJAutoProxyCreator
  • AnnotationAwareAspectJAutoProxyCreator就是一个 BeanPostProcessor
  • AnnotationAwareAspectJAutoProxyCreator就能创建目标对象的代理对象,最终实现AOP

2、核心

  • BeanFactory:Bean工厂。工厂帮我们制造了所有的组件。
  • FactoryBean:工厂Bean。
  • BeanDefinition:Bean定义
  • BeanDefinitionRegistry:bean定义的注册中心
  • BeanDefinitionReader:Bean定义的读取器
  • Aware(BeanFactory):感知。
    • xxxAware。容器中的组件需要一些感兴趣的信息(一般不是我们自己的组件,而是系统组件)
    • 利用回调,把系统组件赋值给我们,我们进行接收使用
  • Enviroment:环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值