2017-04-06 85 views
-1

所以,我在那里我有注入多个bean,像如何将多个bean添加到列表并遍历java中的列表?

private class MyClass{ 
    @Resource(name = "bean1") 
    private bean1 bean1obj; 
    @Resource(name="bean2") 
    private bean2 bean2obj; 
    @Resource(name="bean3") 
    private bean3 bean3obj; 
} 

我需要一个特定的方法在所有(比如说callMethod)在此类中执行的豆类。 所以我需要一个列表,我将所有的bean添加到列表中,并遍历它来执行该列表,或者在xml文件中定义一个列表并遍历它。但是我不确定,怎么做。 如何将所有这些bean添加到arrayList并遍历它?

+0

可能的复制[创建对象的ArrayList]的(http://stackoverflow.com/questions/3982550/创建一个对象的arraylist) –

+0

好吧,既然你手动添加bean,然后只是将它们添加到列表应该不是一个大问题。或者,您可以使用反射来收集所有类型实现您隐式提到的接口的字段。 – Thomas

+0

你使用Spring进行依赖注入吗? – vikingsteve

回答

0

添加豆类的名单是容易的,但这里的挑战是,(假设你正在使用Spring)你想要做的依赖注入发生此

有一种方法可以通过@PostConstruct

。假定每个bean类有一个共同的超Bean,你可以尝试这样的事:

public class MyClass{ 
    @Resource(name = "bean1") 
    private Bean1 bean1obj; 
    @Resource(name = "bean2") 
    private Bean2 bean2obj; 
    @Resource(name = "bean3") 
    private Bean3 bean3obj; 

    List<Bean> beans = new ArrayList<Bean>(); 

    @PostConstruct 
    public void init() { 
     beans.add(bean1obj); 
     beans.add(bean2obj); 
     beans.add(bean3obj); 
    } 
} 
+0

我需要一个xml文件,我将bean添加到列表中。 – Anonymous

+0

这有帮助吗? http://stackoverflow.com/questions/2416056/how-to-define-a-list-bean-in-spring – vikingsteve

+0

如果我必须给而不是?我将如何访问这个MyClass.java文件? – Anonymous