Java中高级核心知识全面解析——常用框架(Spring-IOC和-AOP详解)

本文详细探讨了Java中Spring框架的两大核心——IOC(控制反转)和AOP(面向切面编程)。从为何称作控制反转,到IOC解决的对象耦合问题,再到DI(依赖注入)的解释,文章深入浅出。同时,阐述了AOP的概念,以及它如何解决横切逻辑代码的重复和维护难题。最后强调了Spring框架在面试和实际工作中的重要性。
摘要由CSDN通过智能技术生成

下面从以下几个问题展开对IOC & AOP的解释

  • 什么是IOC?
  • IOC解决了什么问题?
  • IOC 和 DI 的区别?
  • 什么是AOP?
  • AOP解决了什么问题?
  • AOP为什么叫做切面变成?

首先声明:IOC & AOP不是Spring提出来的,它们在Spring之前其实已经存在了,只不过当时更加偏向于理论。 Spring 在技术层次将这两个思想进行了很好的实现。

一、什么是 IOC

IOC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java开发领域对象的创建以及管理的问题。

例如:现有 类A依赖于类B

传统的开发方式:往往是在类A中手动通过new关键字来 new 一个B的对象出来

使用IOC思想的开发方式: 不通过new关键字来创建对象,而是通过IOC容器(Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从IOC容器里面过去即可。

从以上两种开发方式的对比来看:我们 “丧失了一个权力” (创建、管理对象的权力),从而也得到了一个好处(不用再考虑对象的创建、管理等一系列的事情)

1.为什么叫控制反转

控制: 指的是对象创建(实例化、管理)的权力

反转: 控制权交给外部环境(Spring框架、IOC容器)

二、IOC 解决了什么问题

IOC 主要解决的是对象之间的耦合问题。

例如:现有一个针对User的操作,利用 Service 和 Dao 两层结构进行开发

在没有使用IOC思想的情况下,Service 层想要使用 Dao层的具体实现的话,需要通过new关键字在 UserServiceImpl 中手动 new出 IUserDao 的具体实现类 UserDaoImpl(不能直接new接口类)。

很完美,这种方式也是可以实现的,但是我们想象一下如下场景:开发过程中突然接到一个新的需求,针对对IUserDao 接口开发出另一个具体实现类。因为Server层依赖了IUserDao的具体实现,所以我们需要修改UserServiceImpl中new的对象。如果只有一个类引用了IUserDao的具体实现,可能觉得还好,修改起来也不是很费力气,但是如果有许许多多的地方都引用了IUserDao的具体实现的话,一旦需要更换IUserDao的实现方式,那修改起来将会非常的头疼。

使用IOC的思想ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值