实例管理工具(控制反转ioc实现)

我要开发同款
失业王2024年05月11日
50阅读
开发技术java
授权协议MIT许可

作品详情

通过自己写的动态代理工具实现实例容器和注入方法
解决了循环依赖
主要实现了三个注解
@proxyObject:代理整个类对象,通过自己写的动态代理工具实现对每个类中方法的增强
对每个方法增加了在方法执行前会先检测容器中是否已经存在实例如果存在则会直接返回容器中存在的实例
在每个方法执行之后会将自身强拷贝到容器中替换原对象实现统一解决问题如下:
假如有abc三个实例互相依赖
在a和b实例化时会自动加入到容器中
在c实例化时应为a已经实例化了所以会直接指向a
但此时返回的a对象是还没有执行完成原本方法的对象是一个空对象
所以需要强拷贝执行完成方法的对象替换容器中的a对象
从而实现循环依赖的解决
可以看到图二是增强前代码
图三是增强后代码
@newObject:实例化一个类对象,单独使用会出现循环依赖问题
@autoSetField:根据名称自动注入

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论