一.Spring是什么
Spring是一种轻量级的Java开发框架,其核心是IOC(控制反转)和AOP(面向切面编程)。
那么我将逐一分析“轻量级”“框架”“IOC”“AOP”的含义。
轻量级:对于Spring其大小和开销而言是轻量的
框架:Spring把很多组件如Strus和Hibernate组合起来,使得开发大大简化
IOC:管理着javabean对象的配置和生命周期,依赖注解,把创建对象的控制权交由IOC容器管理
AOP:把一些与业务逻辑无关的系统服务(日志,事务,认证)进行了封装,大大减少重复代码
二.IOC容器
IOC容器管理javabean对象的配置和什么周期以及依赖注入的一些注解。没有IOC容器的情况下,对象由我们程序员自己创建,并且自己获取依赖,这时候的控制权在程序员手里。还不明白的话,举个例子:两个对象A,B,A,B相互依赖,当我们创建A时,由于A,B相互依赖,这时候不得不创建B。但是有了IOC之后我们只需要创建A,IOC容器会自动把A中需要B的依赖注入。这就是体现出“控制反转”。
三.AOP
系统由很多组件组成的,每个组件有着不同功能,但是每个组件有时候需要相互使用,对于OOP而言,它只能定义上下之间的关系,不能定义左右之间的关系。可能这里不太好理解,举个简单的例子,有两个功能模块分别是订单和商品模块,对于日志这个功能,在OOP的情况下,它是分布在每个模块的,也就是说分散在订单和商品模块中,这样的话有很多重复的代码,那么怎么解决呢?这时候就需要用到AOP的思想,把日志封装,作为一个横切面,这样就能贯穿所有模块。AOP增强了某些或者某个对象的功能,而且使得代码大大简化。下面的图有助于理解和比较



