目的:简化Java开发
完成目标:

  • 基于POJO的轻量级和最小侵入性编程
  • 通过依赖注入和面向接口实现松耦合
  • 基于切面和惯例进行声明式编程(AOP
  • 通过切面和模板消除样板式代码(JDBC Template

Spring容器
负责创建对象,装配它们,配置它们并管理它们的整个生命周期,从生存到死亡。

分类:

  • BeanFactory
  • ApplicationContext

bean工厂(由org.springframework. beans.factory.BeanFactory接口定义)是最简单的容器,提供基本的DI支持。
应用上下文(由org.springframework.context.ApplicationContext接口定义)基于BeanFactory构建,并提供应用框架级别的服务。

bean的生命周期

  1. Springbean进行实例化;
  2. Spring将值和bean的引用注入到bean对应的属性中;
  3. 如果bean实现了BeanNameAware接口, SpringbeanID传递给setBeanName()方法;
  4. 如果bean实现了BeanFactoryAware接口, Spring将调
    setBeanFactory()方法,将BeanFactory容器实例传入;
  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框架由20个不同的模块组成,这些模块依据其所属的功能可以划分为6类不同的功能。

  1. Spring核心容器
  2. Spring的AOP模块
  3. 数据访问与集成
  4. Web与远程调用
  5. Instrumentation
  6. 测试
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐