我可以访问命名的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
注释吗
我不知道应该加什么标签。如果需要,请编辑问题。是的,注释可用于将beanMyNamedBean
注入另一个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(在相同的作用域或相同的作用域代理中),或者它必须由上下文手动自动连接。