
上QQ阅读APP看书,第一时间看更新
5.6 依赖注入
问题
如何在类中注入依赖?
解决方案
使用上下文和依赖注入(Contexts and Dependency Injection,CDI)。
讨论
Quarkus中的依赖注入(DI)基于标准的Contexts and Dependency Injection 2.0规范(https://oreil.ly/VcDnN),对基本的用例做了一些简单的修改。
Quarkus实现了大部分的规范,除了一些不会影响你的代码实现的边缘情况。Quarkus网站维护了一个支持的功能和限制的列表,包括本书没有涉及的更高级的功能。你可以在Quarkus CDI参考指南(https://oreil.ly/-LPAd)中找到这些列表。
注入的发生与你在其他使用CDI的应用程序中预期的一样:
❶需要使用@Inject注解
❷由于反射的限制,首选包私有注入字段
注入的服务很标准,没有任何特殊的地方:
❶下面会提到,为了让这个类能被找到,你应该使用bean定义的注解Quarkus中的bean发现遵循标准CDI的简化过程。简而言之,如果你的应用程序类中没有一个bean定义的注解(https://oreil.ly/jm4QF),Quarkus将不会发现它们。
另见
要了解更多信息,请参见以下网页。
·JBoss:JSR 365:Contexts and Dependency Injection for Java 2.0(https://oreil.ly/clOD4)
·GitHub:GraalVM Native Image Compatibility and Optimization Guide(https://oreil.ly/7sgPm)