我有一个用户工厂,它只是从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,例如twitterId
,facebookId
...我可以在getter中懒惰地构建它,但我很好奇是否有一种设置工厂注入它的方法。我也可以暴露一个setter,并在UserFactory中设置它......但是试图限制暴露。
答案 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>