不是吧?面试被问了几百遍的 IoC 和 AOP 还搞不清楚?那这份内容要抓紧码住学起来了!

SpringIOC的解释

IOC(控制反转)就是依赖倒置原则的一种代码设计思路,就是把原先在代码里面需要实现的对象创建、对象之间的依赖、反转给容器来帮忙实现
SpringIOC 容器通过XML,注解等其他方式配置其他方式类以及类之间的依赖关系,完成了对象的创建和依赖的管理注入。实现IOC的主要设计模式是工厂模式。

这句话的意思是:
IOC控制反转的含义,它是把Java面向对象的创建的过程,交给容器来进行管理一种机制。
它的实现方式,是通过XM,获取注解,配置类的方式实现类和类之间的依赖关系。
来完成的对象的创建和依赖管理的注入。

SpringIOC的设计初衷是什么?

集中管理,实现类的可配置和易管理
减低类与类之间的耦合度,实现Java高内聚低耦合的设计思想
同时可提升Java应用程序的性能,减轻JVM的内存压力

SpringIOC的核心概念

其实本质是通过:Java语言衍生出来的框架和项目产品,只不过开源出来。
使用spring最大的感受就是:很少使用new对象或者很少实例化对象
核心:创建对象,注入对象,控制对象等,一句话:springioc管理对象的整个生命周期。
总结:
面试题:谈谈你对SpringIOC的理解和认识是什么?
答:首先Spring框架是通过JAVA语言开发出来的一个框架或者一个项目产品。我们Java的最大的特点是:面向对象,在没有使用Spring框架的时候,我们要调用类中的方法或者给属性赋值,都是通过new去实例化对象,使用Spring框架以后,它内部提供IOC机制,也就是控制反转的含义,它的核心基础是:把对象创建的过程交由容器(Map)来进行管理一种机制,我们会把通过容器来管理对象的方式,将传统的创建更换成交由容器管理对象的过程称之为IOC控制反转的过程。总之如果要实现对象交由Spring的IOC来管理话,就必须遵循Spring提供的规范,而这些规范在传统spring开发中,是通过xml的方式来进行注入和管理的bean到容器中,现在主流的方式都是采用注解的方式进行的管理和控制bean到容器中,现在主流的方式都是采用注解的方式来进行管理和控制bean到容器中等

这样做的好处是:
集中管理,实现类的可配置和易管理。
降低了类与类之间的耦合度。实现Java高内聚低耦合的设计思想。
同时可以提升Java应用程序的性能,减轻JVM的内存压力。

AOP

面向切面编程,是一种抽象化的面向对象编程,对面向对象编程的补充,
打印日志业务代码和打印日志耦合起来
计算器方法中,日志和业务混合在一起,aop要做的就是将日志代码全部抽象出去统一进行处理,计算器方法中只保留核心的业务代码。
做到核心业务和非业务代码的解耦合。

  1. 创建切面类
  2. 实现类添加@Component注解
  3. 配置自动扫包,开启带自动生成代理对象
    切面类:

谷歌大牛甚至直言:“对于Java开发者,学习Java就是在学Spring。”本篇内容分享Spring IOC以及Spring AOP的学习笔记,=将分成4个部分跟大家分享,请认真看完本文,对你工作一定大有帮助

Part1 SpringIOC

学习Spring最重要的无非是Spring IOC以及Spring AOP,首先咱们把Spring IOC吃透,以下内容将截图展示。

Spring IOC主要学习内容分为以下7点:

①Spring框架

②Spring lOC容器Bean对象实例化模拟实现

③Spring IOC容器Bean对象实例化

④Spring lOC配置文件加载

⑤Bean的作用域和生命周期

⑥Spring IOC扫描器

⑦Spring IOC注入

Part2 SpringAOP核心组件分析

Part 3SpringAOP IOC源码分析

部分内容展示:

Spring事务原理:

什么是BPP?

AOP全面回顾:

Part 4 看过都NB的Spring源码笔记

Spirng源码笔记无非也是就是对IOC和AOP进行更加底层的分析,笔记内容我将分成四个部分,将通过案例来分析并手写实现IOC和AOP,不多BB,一起学习吧,

  • 吃透Spring核心思想IOC和AOP
  • 自定义Spring框架(手写实现IOC和AOP)
  • Spring IOC高级应用以及源码深度剖析
  • Spring AOP高级应用以及源码深度剖析

①什么叫IOC、AOP;它们能解决什么问题?IOC和DI的区别是什么?AOP为什么叫做面向对象编程?

②理解了Spring的核心思想后,先略过Spring是如何实现这两个思想的,通过案例来分析代码,并用现有知识解决痛点,从而一步步分析并手写实现IOC和AOP。

③分析Spring IOC高级应用,基础必不可少,像BeanFactory与ApplicationContext区别,纯xml模式,纯注解模式,xml与注解相结合模式你总得吃透。然后再理解lazy-Init 延迟加载,FactoryBean 和 BeanFactory,BeanPostProcessor,BeanFactoryPostProcessor。最后就是学习Spring IOC源码了。

④学习Spring AOP高级应用以及源码,整体上也和学习IOC差不多,我就不过多赘述了。

最后

作为一名 Java 开发,对 Spring 框架是再熟悉不过的了。Spring 支持的控制反转(Inversion of Control,缩写为IoC)和面向切面编程(Aspect-oriented programming,缩写为AOP)早已成为我们的开发习惯,仿佛 Java 开发天生就该如此。人总是会忽略习以为常的事物,所有人都熟练使用 IoC 和 AOP,却鲜有人说得清楚到底为什么要用 IoC 和 AOP。
技术肯定是为了解决某个问题而诞生,要弄清楚为什么使用 IoC 和 AOP,就得先弄清楚不用它们会碰到什么问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值