概述

Spring 内核

  • 控制反转 IoC

    系统的耦合性降低,不用再去创建对象。

  • 面向切面编程 AOP

    AOP 模块:提供了面向切面编程实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态的把这些功能添加到需要的代码中,这样各司其职,降低业务逻辑和通用功能的耦合。

spring体系结构

创建spring项目(idea)

IoC容器

BeanFactory 和 ApplicationContext 容器。
  • BeanFactory

    BeanFactory 提供了容器最基本的功能。

  • ApplicationContext

    ApplicationContext继承了 BeanFactory 接口。ApplicationContext 在 BeanFactory 的基础上增加了很多企业级功能,例如 AOP、国际化、事件支持等。ApplicationContext 接口有两个常用的实现类: ClassPathXmlApplicationContext和FileSystemXmlApplicationContext

    1
    二者的主要区别在于,如果 Bean 的某一个属性没有注入,使用 BeanFacotry 加载后,第一次调用 getBean() 方法时会抛出异常,而 ApplicationContext 则会在初始化时自检,这样有利于检查所依赖的属性是否注入。