Spring核心IOC和AOP通过源码简介

本文探讨了阅读Spring源码的重要性,不仅对掌握SpringMVC、SpringBoot有帮助,还能够学习设计模式与提升编程技巧。文章详细介绍了Spring的核心组件IOC容器和AOP的工作原理,通过实例说明了@Service和@Autowired注解的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,为什么读Spring源码

如果你是一名JAVA开发人员,你一定用过Spring Framework。作为一款非常经典的开源框架,从2004年发布的1.0版本到现在的5.0版本,经历了15年的洗礼,持久不衰与其说现在是JAVA的天下,不如说是Spring的天下。

  1. 对面试有帮助
  2. 对学SpringMVC有帮助
  3. 对学SpringBoot有帮助
  4. 借鉴一些设计模式与思路
  5. 激情与毅力,能读懂Spring,其它的框架没什么可怕

二,Spring源码的核心组件

IOC容器负责实例化、定位、配置应用程序的对象及建立这些对象间的依赖

IOC容器:spring-anno是Spring最底层的框架它依赖一个jar包叫spring-context它里面包含Spring一些核心的jar例如spring-aop啊一些的,Spring5最大特点就是只是注解。 通过源码发现IOC的底层是个大Map。

咱们平时用Spring的时候都会写一个XXServiceImpl这种的Service实现上面都会加一个”@Service“的注解,这个注解可以理解为作为Key,Value对存放在底层的大Map里(注Map是安全的),例如map.put("XXServiceImpl",XXServiceImpl),值就是这个对象的实例(启动Tomcat会自动创建||启动程序自动创建的实例(启动调用getBean()))。那么在咱们的Controller中的注解”@Autowired“就相当于根据Key找对应的Value(对应的实现类)例如map.get("XXServiceImpl")。

想了解具体源码剖析可以参考:https://www.jianshu.com/p/e4ca039a2272

AOP面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术

我们一般都用过@Transactional,如下做一些增删改的操作,在这里@Transactional的作用是把它们放一块管理事务。这种其实就是面向切片(AOP),面向代码段进行切片

@Transactional

Public int updateOrder(){

    insert..

    update...

    select..

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值