Spring——核心

Spring——核心

Spring关键策略
  1. 基于POJO的轻量级和最小侵入性编程
  2. 通过依赖注入和面向接口实现松耦合
  3. 基于切面和惯例进行声明式编程
  4. 通过切面和模板减少样板式代码
Spring容器
  • BeanFactory
  • ApplicationContext
区别:
  1. BeanFactory在加载Bean的时候是延迟加载,需要时才加载(不能及时发现问题)而ApplicationContext默认是初始化容器时加载Bean,若bean的scope属性为prototype且lazy-init为false(默认)则为使用时加载
  2. ApplicationContext接口由BeanFactory接口派生而来,提供了BeanFactory所有的功能
  3. BeanFactory无法支持AOP,WEB应用等
  4. ApplicationContext还提供以下功能:
    1. MessageResource国际化的消息访问(i18n)
    2. 资源访问,如URL和文件
    3. 事件传播
    4. 载入多个(有继承关系)上下文,使得每个上下文专注于一个特定的层次,比如应用的web层
Bean生命周期

Bean生命周期
1. Spring对bean进行实例化
2. Spring将值和bean的引用注入到bean对应的属性中
3. 如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBeanName()方法
4. 如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将bean容器实例注入
5. 如果bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext()方法,将bean所在的应用上下文的引用注入进来
6. 如果bean实现了BeanPostProcessor接口,Spring将调用他们的postProcessBeforeInitialization()方法
7. 如果bean实现了InitializingBean接口,Spring将调用它们的afterPropertiesSet()方法。类似地,如果bean使用init-method声明了初始化方法,该方法也会被调用
8. 如果bean实现了BeanPostProcessor接口,Spring将调用它们的postProcessAfterInitialization()方法
9. 此时,bean已经准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文中,直到该应用上下文被销毁
10. 如果bean实现了DisposableBean接口,Spring将调用它的destroy()接口方法。同样,如果bean使用destroy-method声明了销毁方法,该方法也会被调用

Spring框架模块

Spring模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值