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

时间:2016-05-21 21:33:36

标签: java cdi

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

import javax.inject.Named;

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

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

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

1 个答案:

答案 0 :(得分:0)

是的,注释@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~ ฅ^•ﻌ•^ฅ");
    }
}