是的,您可以使用查找方法按需创建原型方法
public abstract class ItemFactory { public abstract Item createItem();}现在在applicationContext.xml中只需输入以下内容:
<bean id="item" scope="prototype" lazy-init="true"/>
并配置工厂:
<bean id="itemFactory" ><lookup-method name="createItem" bean="item"/></bean>
现在,要使用它,需要做的就是在任何bean中自动装配它:
并调用您的查找方法:
@Service public class MyService{ @Autowired ItemFactory itemFactory; public someMethod(){ Item item = itemFactrory.createItem(); }}每次调用时,
createItem()您都会收到对新创建的Item类实例的引用。
PS: 我看到您正在使用
@Configuration而不是xml,需要检查是否可以在配置bean中配置查找方法。
希望能帮助到你。
更新: 诀窍很简单:
@Configurationpublic class BeanConfig { @Bean @Scope(value="prototype") public Item item(){ return new Item(); } @Bean public ItemManager itemManager(){ return new ItemManager() { @Override public Item createItem() { return item(); } }; }}


