操操操

第16章:战无不胜,给代理对象的属性设置值

2021-08-05
2分钟阅读时长

作者:秋小官(小秋哥) 博客:https://zuisishu.com(openss> new window) 星球:https://articles.zsxq.com/id_fdl4zpdvwv68.html(openss> new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

零、优秀作业

调整 AOP 代理对象生成的时机 实现其属性注入 @Rechie(opens new window) 解决代理对象的属性注入,把代理对象加入生命周期 @Chin(opens new window) 给代理对象的属性设置值 @liuc(opens new window) MyBatis 就是主要使用代理类,因此 Spring 就需要支持代理类的初始化。@水中捞月(opens new window)

调AOP代理对象的结构,使之可以被注入属性 @在九月(opens new window)

一、前言

怎么了,运行的好好的放在别人电脑上就出错?

是不是有时候你觉得提交的代码,功能完善、逻辑正确、格式漂亮,但不管是小哥哥还是小姐姐,只要测试人员一上手,就会发现 这有Bug、那有Bug、你回去改改别耽误我时间! 这是为什么呢?

因为测试人员的输入的数据可不是你已经跑了几十遍能通过运行的简单数据,他们的数据更偏向于用户真实使用时候的输入效果。就像我们在使用 Spring 的时候,谁规定用户一定会使用普通的类对象呢,只要是 Java 的 JDK 中能提供的骚操作就都有可能在 Spring 框架下使用,比如:MyBatis 用了代理类、RPC 链接了注册中心、分库分表切换了数据源,那这些就都需要 Spring 来支持。而如果你在开发的过程中没有考虑到这些,可能也就忽略了此类功能的实现,这好了,测试那上手肯定就出 Bug 了!

二、目标

其实本章节要解决的问题就是关于如何给代理对象中的属性填充相应的值,因为在之前把AOP动态代理,融入到Bean的生命周期时,创建代理对象是在整个创建 Bean 对象之前,也就是说这个代理对象的创建并不是在 Bean 生命周期中。

所以本章节中我们要把代理对象的创建融入到 Bean 的生命周期中,也就是需要把创建代理对象的逻辑迁移到 Bean 对象执行初始化方法之后,在执行代理对象的创建。