我可以访问命名的 java bean 吗?

Can I access a named java bean?

我正在尝试使用 @Named 组件创建 Java EE 应用程序。

import javax.inject.Named;

@Named
public class MyNamedBean {
    public int myMethod() { ... }
}

但是由于某些原因,我需要从另一个 java bean 访问这个命名的 java bean 的方法。那我该怎么做呢?我应该使用 @Inject 注释吗?

我不知道应该添加什么标签。如果需要,请编辑问题。

是的,注释@Inject 可以用来将bean MyNamedBean 注入到另一个bean,然后从注入的bean 访问想要的方法。

示例:

Zoo.java

import javax.inject.Inject;

public class Zoo {

    @Inject
    private Dog dog;

    public Zoo() {
    }

    public void talk() {
        dog.talk();
    }
}

Dog.java

import javax.inject.Named;
import javax.inject.Singleton;

@Named
@Singleton // optional
public class Dog {

    public void talk() {
        System.out.println("wowowo~ ฅ^•ﻌ•^ฅ");
    }
}