java - 在不依赖框架的情况下理解 java 中的依赖注入(inject)。它在纯 Java 代码中是什么样子的?

标签 java spring oop dependency-injection

我正在学习 Java 的 Spring 框架。这都是关于依赖注入(inject)的。是否有博客或一些资源或示例可以用来理解 RAW 依赖注入(inject)?换句话说,没有注释或 xml 或任何容器。纯 Java 代码中的依赖注入(inject)是什么样的?

提前致谢!

最佳答案

它看起来像这样(假设所有 bean 都是原型(prototype)作用域):

class BeanToBeInjected {
}

class BeanThatNeedsInjection {
    BeanToBeInjected beanToBeInjected;
    public void setBeanToBeInjected(BeanToBeInjected beanToBeInjected) {
        this.beanToBeInjected = beanToBeInjected;
    }
}

class BeanFactory {
    public Object createBean(String id) {
        if("beanThatNeedsInjection".equals(id) {
            BeanThatNeedsInjection beanThatNeedsInjection = new BeanThatNeedsInjection();
            beanThatNeedsInjection.setBeanToBeInjected(new BeanToBeInjected());
            return beanThatNeedsInjection;
        }
        return null;
    }
}

class MyService {
    public void service() {
        BeanThatNeedsInjection beanThatNeedsInjection =
            new BeanFactory().createBean("beanThatNeedsInjection");
    }
}

当然,通过反射和其他库(如 cglib)进行增强以动态创建代理类。

关于java - 在不依赖框架的情况下理解 java 中的依赖注入(inject)。它在纯 Java 代码中是什么样子的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599116/

相关文章:

c++ - 调试断言失败(缓冲区太小)构造函数初始化

java - 如何在java中对List对象应用查询

java - DWR 远程调用未设置值为 XMLHttpRequest 的 X-Requested-With 请求 header

java - 类级别验证问题

java - Spring MVC Controller 没有返回正确的 View

c# - 如何在一组 Action 中遵循单一职责原则

php - 我可以在 PHP 中使用多个类来扩展一个类吗?

java - 在 dbcp 中使用 PreparedStatement 池

java - appengine :update 的 Maven 构建生命周期

java - Spring MVC Controller 不重定向到任何 View