Spring基础知识总结---IOC、AOP

Spring学习总结

  • 一、Spring架构分层
    • 1.框图
  • 二、IOC
    • 1.IOC介绍
    • 2.IOC作用
    • 3.思考四个问题
  • 三、AOP
    • 1.aop介绍
    • 2.AOP作用/应用场景

一、Spring架构分层

1.框图

Spring基础知识总结---IOC、AOP_第1张图片ADD:被Spring容器管理的对象称之为bean。

二、IOC

1.IOC介绍

IOC英文全称是Inversion of Control——控制反转,也成为依赖注入(DI)。所谓IOC,就是由Spring容器管理对象的生命周期和对象之间的关系。IOC是一种设计思想,而不是一种设计技术;在管理的过程中,对象所使用的其他类对象,仅通过构造方法,或工厂方法,或成员属性的方式在对象的实例上设置这些依赖的类对象值。

2.IOC作用

这里举个例子应该更抽象容易体会一些。就好比我们买房,房子有不同的占地面积,地理位置优越之分,周围环境等,你对房屋的价格有一定的要求,同时房屋所在的地理位置也是你看重的部分。而,如果你想要找到自己心仪的房子,你需要一间一间的亲自到所在位置去考察,去和房东了解沟通房屋各方面的价值,这个过程毫无疑问是费时又费力的。这个时候,中介公司相当于一个IOC过程,你将你需要的东西和要求告诉中介,中介自动根据你的需求匹配给你符合你标准的房子。相当于在这个IOC过程中,你把需求告诉Spring,Spring在系统运行到的过程中,主动将你需要的东西给你,同时也把你交给需要你的东西。

3.思考四个问题

1.谁控制谁?
在非Spring开发模式下,我们都是直接通过new的方式来创建对象,对象的依赖关系赋值都是由我们在代码中主动体现出来。但是有了Spring IOC容器后,则直接交给了IOC容器来控制,所以是IOC控制了对象
2.控制了什么?
控制了对象、对象之间的依赖关系、及对象的生命周期
3.为何是反转?
在没有IOC容器时,对象都是程序主动创建并赋值,但是有了IOC容器后,对象之间的关系就由IOC容器管理。
4.反转了什么?
所依赖对象的获取被反转了。

三、AOP

1.aop介绍

Spring框架的两大特性,一个是IOC,另一个就是AOP。AOP是Aspect Oriented programming的缩写,中文译为面向切面编程。在面向对象编程(OOP)中,关键结构是类;而在AOP中模块化的结构是切面,切面使关注点模块化,如跨多种类型和对象的事务管理。Spring IoC容器不依赖于AOP,这就意味着在你的使用过程中,不需要时不必引入AOP模块。AOP是对Spring框架的补充,IoC提供了非常强大的中间件解决方案。

2.AOP作用/应用场景

Spring文档中对AOP有如下定义:

1.提供声明式企业型服务,尤其是替代EJB方案,提供了声明式的事务管理方案。
2.允许用户自定义切面,通过AOP实现OOP的补充。

这说明,Spring不仅通过AOP提供声明式的事务管理,还允许我们自定义切面,补充OOP,完成一些特殊的业务流程:

  1. 日志记录
  2. 性能统计
  3. 权限控制
  4. 统一异常处理

你可能感兴趣的:(项目总结,java,spring,ioc,aop)