gpt4 book ai didi

java - 依赖注入(inject)是如何手动实现的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:07:39 26 4
gpt4 key购买 nike

我们如何在不使用容器工具的情况下手动注入(inject)对象。我通过反射(reflection)做了类似的事情如下。

Class actionClass = Class.forName("SampleClass");
Object actionObject = actionClass.newInstance();
Method reqMethod = actionClass.getMethod("setRequest", HttpServletRequest.class);
reqMethod.invoke(actionObject,request);

这是做 DI 的正确方法吗?

我的意图是将请求对象动态地从调度程序过滤器传递到不同的 Controller 类,我们在其中获取请求和响应对象。我担心反射的性能。是否有替代 DI 的方法?

最佳答案

依赖注入(inject)只不过是提供一个类及其依赖,而不是让它自己找到它们(通过单例/查找等)。所以你可以用代码简单地做到这一点:

DatabaseConnection dc = new DatabaseConnection();
MyDAO dao = new MyDAO(dc);

(伪代码)。这里 MyDAO 被注入(inject)数据库连接。如果该数据库连接实现了一个接口(interface),您可以在测试期间轻松模拟它。

关于java - 依赖注入(inject)是如何手动实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com