Spring

  1. 核心:依赖注入和面向切面

  2. 思想:

    • 基于POJO的轻量级和侵入性最小编程。侵入性最小编程就是某个类在spring和非spring应用中的作用都一样,且Spring不会强迫去实现某个规范接口或类
    • 通过依赖注入和面向接口实现松耦合

    • 基于切面和惯例进行声明式编程
    • 通过切面和模版减少版式代码
  3. 依赖注入:对象所需要的依赖关系不需要由自己创建或管理,而是交给Spring,然后将依赖关系自动注入到需要他们的对象中去。

  4. 装配:创建应用组件之间协作的行为,即装配。配置类之间的依赖关系

  5. Spring容器:负责创建对象,管理它们,配置它们并且管理它们的整个生命周期。Spring自带了多种容器的实现,可以归为以下两种类型

    • bean工厂:由org.springframework.beans.factory.BeanFactory接口定义,是最简单的容器,提供基本的依赖注入支持

    • 应用上下文:由org.springframework.context.ApplicationContext接口定义,基于BeanFactoy构建,提供框架级服务。应用上下文要比bean工厂更受欢迎。

    • 5种应用上下文:

      a. AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文

      b. AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring web应用上下文

      c. ClassPathXmlApplicationContext:从类路径下的一个或多个xml配置文件中加载上下文定义,把应用上下文的定义文件作为类资源

      d. FileSystemXmlApplicationContext:从文件系统下的一个或多个xml配置文件中加载上下文定义

      e. XmlWebApplicationContext:从web应用下的一个或多个xml文件中加载应用上下文

  6. Spring生命周期