Java依赖注入的意思_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java依赖注入的意思

Java依赖注入的意思

更新时间:2022-08-01 11:31:00 来源:极悦 浏览1336次

Java依赖注入是什么意思?极悦小编来告诉大家。

什么是依赖注入?

依赖注入 (DI) 是对象从外部获取其他所需对象的概念。

DI 可以用任何编程语言实现。依赖注入背后的一般概念称为控制反转。

如果 Java 类使用此类的实例,则它依赖于另一个类。我们称之为类依赖。例如,访问记录器服务的类依赖于该服务类。

理想情况下,Java 类应该尽可能独立于其他 Java 类。这增加了重用这些类的可能性,并且能够独立于其他类来测试它们。

如果 Java 类通过new运算符创建另一个类的实例,则不能独立于该类使用(和测试)它,这称为硬依赖。下面的例子展示了一个没有硬依赖的类。

package com.vogella.tasks.ui.parts;
import java.util.logging.Logger;
public class MyClass {
    private Logger logger;
    public MyClass(Logger logger) {
        this.logger = logger;
        // write an info log message
        logger.info("This is a log message.")
    }
}

一个框架类,通常称为依赖容器,可以分析这个类的依赖关系。通过这种分析,它能够创建类的实例并通过 Java 反射将对象注入到定义的依赖项中。

这样 Java 类就没有硬依赖,这意味着它不依赖于某个类的实例。这允许您单独测试您的类,例如使用模拟对象。

模拟对象(模拟)是行为与真实对象相似的对象。但是这些模拟不是编程的;它们被配置为以某种预定义的方式运行。Mock是一个英文单词,意思是模仿或模仿。

如果使用依赖注入,则可以单独测试 Java 类。

使用注解来描述类依赖

存在不同的方法来描述类的依赖关系。最常见的方法是使用Java注解直接在类中描述依赖关系。

Java Specification Request 330 (JSR330) 中定义了用于描述类依赖关系的标准 Java 注释。本规范描述了@Inject和@Named注释。

以下清单显示了一个使用注释来描述其依赖关系的类。

// import statements left out
public class MyPart {
    @Inject private Logger logger;
    // inject class for database access
    @Inject private DatabaseAccessClass dao;
    @Inject
    public void createControls(Composite parent) {
        logger.info("UI will start to build");
        Label label = new Label(parent, SWT.NONE);
        label.setText("Eclipse 4");
        Text text = new Text(parent, SWT.NONE);
        text.setText(dao.getNumber());
    }
}

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>