Java 如何在春天建立一个创造单身的工厂
我有一个必须使用factory方法创建的对象:Java 如何在春天建立一个创造单身的工厂,java,spring,Java,Spring,我有一个必须使用factory方法创建的对象: public class FrameFactory { public static Frame createFrame() throws IOException, SerializationException { BXMLSerializer bxmlSerializer = new BXMLSerializer(); return (Frame)bxmlSerializer.readObject(Frame
public class FrameFactory {
public static Frame createFrame() throws IOException, SerializationException {
BXMLSerializer bxmlSerializer = new BXMLSerializer();
return (Frame)bxmlSerializer.readObject(FrameFactory.class, "/gui/MainFrame.bxml");
}
}
获取平均值的Spring调用如下:
<bean id="frame" class="Frame" factory-method="createFrame"/>
但是,我希望这个对象是singleton
我的问题是Spring是否有一些现成的方法来生成singleton,或者我必须自己在FrameFactory中实现singleton模式
非常感谢。当您使用静态工厂方法时,正确的语法是:
<bean id="frame" class="FrameFactory " factory-method="createFrame"/>
而且您不必创建工厂bean。默认情况下,
frame
bean将实例化为单例bean。OP要从BXMLSerializer
对象获取frame
对象,是否可以不使用工厂方法?。您可以按您的方式创建两个bean(使用不同的ID),但它们不会==我知道。但是,如果一个程序员无缘无故创建了同一类的两个bean,并且惊讶于没有一个真正的单例,那么应该怪他,而不是Spring。您得到的是不同的对象吗?我不这么认为。打印返回的Frame
对象的hashCode
。