我已经阅读了注释所说的内容,但我有点笨,所以无法正确理解
标识可注入的构造函数、方法和字段。可能适用于静态成员和实例成员。可注入成员可以具有任何访问修饰符(私有、包私有、受保护、公共)。首先注入构造函数,然后是字段,然后是方法。超类中的字段和方法先于子类中的字段和方法注入。未指定同一类中的字段之间和方法之间的注入顺序。
你能解释一下@Inject 的用途吗?如果可以用现实生活中的不那么抽象的东西来类比
Joã*_*ias 14
@Inject是一个 Java 注释,用于描述属于 Java EE(现在称为 Jakarta EE)一部分的类的依赖关系。它是 CDI(上下文和依赖注入)的一部分,CDI 是 Java EE 6 及更高版本中包含的标准依赖注入框架。
CDI 最臭名昭著的功能是它允许您在客户端类中注入依赖项。我所说的依赖是什么意思?这基本上就是你的班级需要做的事情。
我给大家举个例子,以便大家更容易理解。想象一下,您有一个类NotificationService应该以不同的格式(在本例中为电子邮件和短信)向人们发送通知。为此,您很可能希望将发送通知的实际操作委托给能够处理每种格式的专门类(让我们假设EmailSender和SmsSender)。允许@Inject您做的是在类中定义注入点NotificationService。在下面的示例中,@Inject指示 CDI 通过构造函数注入EmailSender实现SmsSender对象。
public class NotificationService {
private EmailSender emailSender;
private SmsSender smsSender;
@Inject
public NotificationService(EmailSender emailSender, SmsSender smsSender) {
this.emailSender = emailSender;
this.smsSender = smsSender;
}
}
Run Code Online (Sandbox Code Playgroud)
还可以在字段(字段注入)和设置器(setter 注入)中注入类的实例,而不仅仅是如上所述在构造函数中。
Spring 是利用这种依赖注入概念的最著名的 JVM 框架之一。
| 归档时间: |
|
| 查看次数: |
15785 次 |
| 最近记录: |