我可以访问命名的javabean吗?

我可以访问命名的javabean吗?,java,cdi,Java,Cdi,我正在尝试创建一个名为@的组件的JavaEE应用程序 import javax.inject.Named; @Named public class MyNamedBean { public int myMethod() { ... } } 但出于某些原因,我需要从另一个JavaBean访问这个命名JavaBean的方法。那我怎么做呢?我应该使用@Inject注释吗 我不知道应该加什么标签。如果需要,请编辑问题。是的,注释可用于将beanMyNamedBean注入另一个bean,然后从

我正在尝试创建一个名为
@的
组件的JavaEE应用程序

import javax.inject.Named;

@Named
public class MyNamedBean {
    public int myMethod() { ... }
}
但出于某些原因,我需要从另一个JavaBean访问这个命名JavaBean的方法。那我怎么做呢?我应该使用
@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~ ฅ^•ﻌ•^ฅ");
    }
}

好问题,我不知道@PeterRaderIn Spring CDI(我确信)它必须是一个Bean(在相同的作用域或相同的作用域代理中),或者它必须由上下文手动自动连接。