Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为@InjectAnnotation提供注入的最简单方法是什么?_Java_Dependency Injection_Inject - Fatal编程技术网

Java 为@InjectAnnotation提供注入的最简单方法是什么?

Java 为@InjectAnnotation提供注入的最简单方法是什么?,java,dependency-injection,inject,Java,Dependency Injection,Inject,最近我发现某处有@Inject注释。它可以注入类 如何从提供商端使用它 假设我想能够写作 class MyClass1 { @Inject MyType2 variable; } 如何让它工作?什么是绝对必要的 如果MyType2是抽象类的接口怎么办?JSR 330:Dependency Injection for Java(链接:)中指定了@Injection注释 它用于各种应用服务器上Web应用程序的Web容器中 依赖项注入为变量提供一个代理类,直到它真正被使用为止。然

最近我发现某处有
@Inject
注释。它可以注入类

如何从提供商端使用它

假设我想能够写作

class MyClass1 {

    @Inject
    MyType2 variable;

}
如何让它工作?什么是绝对必要的


如果
MyType2
是抽象类的接口怎么办?

JSR 330:Dependency Injection for Java(链接:)中指定了@Injection注释

它用于各种应用服务器上Web应用程序的Web容器中

依赖项注入为变量提供一个代理类,直到它真正被使用为止。然后容器将注入相关类,您可以使用它。 因此,您需要一个容器,因为将类注入注入注入点是他的任务

如果您想在JavaSE环境中使用依赖项注入,可以查看GoogleGuice(链接:)

“如果MyType2是抽象类的接口怎么办?”


实例化一个抽象类是不可能的,所以我想它会失败。

您需要一个依赖注入框架,如Spring、Guice或CDI。那么为什么在主Java EE库中定义
@Inject
?因为CDI是Java EE的核心部分。HK2是另一个您可以研究的依赖注入框架()
MyType2
可以用一些子代和/或实现者进行实例化