我可以将依赖项注入需要来自对象的数据的对象吗?

时间:2012-11-29 01:25:23

标签: java spring ioc-container

我有一个用户工厂,它只是从UserStore获取用户:

public class UserFactory
{
    @Autowired
    private UserStore userStore;

    public User getUserFromId(String Id)
    {
        User foundUser = this.userStore.findUser(Id);

        return foundUser;
    }
}

这是我的用户对象:

public class User implements Serializable
{
    @Autowired
    private List<Announcer> announcers;  //I want this injected

    private String twitterId;

    private String facebookId;

    public List<Announcer> getAnnouncers()
    {
        //lazy init?
        return this.announcers;
    }

}

announcers中的每个实例都依赖于相应的服务ID,例如twitterIdfacebookId ...我可以在getter中懒惰地构建它,但我很好奇是否有一种设置工厂注入它的方法。我也可以暴露一个setter,并在UserFactory中设置它......但是试图限制暴露。

1 个答案:

答案 0 :(得分:-1)

看一下这个链接: http://www.tutorialspoint.com/spring/spring_injecting_collection.htm

请参阅“注入Bean引用”一节。

我不知道没有xml配置的方法,我在这些情况下做的是定义要在xml文件的列表中注入的itens然后我将bean注入列表。

类似的东西:

 <bean id="an1" class="FBAnnouncer"/>
 <bean id="an2" class="TWAnnouncer"/>
 <bean id="user" class="User">
     <property name="announcers">
        <list>
           <ref bean="an1"/>
           <ref bean="an2"/>
        </list>
      </property>
 </bean>