概述
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 则会在初始化时自检,这样有利于检查所依赖的属性是否注入。