我在类和接口之下创建了,但原型bean构造函数没有被调用。我正在使用@Lookup来创建原型范围的bean。无法使用@Lookup注解在单例bean中的原型范围中自动装入bean
public interface IProtoTypeBean {}
@Component
@Scope(value = "prototype")
public class ProtoTypeBean implements IProtoTypeBean {
public ProtoTypeBean() {
super();
System.out.println("ProtoTypeBean");
}
}
@Component
public class SingleTonBean {
IProtoTypeBean protoTypeBean = getProtoTypeBean();
@Lookup
public ProtoTypeBean getProtoTypeBean(){
return null;
}
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(SingleTonBean.class);
SingleTonBean s1 = ctx.getBean(SingleTonBean.class);
IProtoTypeBean p1 = s1.protoTypeBean;
SingleTonBean s2 = ctx.getBean(SingleTonBean.class);
IProtoTypeBean p2 = s2.protoTypeBean;
System.out.println("singelton beans " + (s1 == s2));
// if ProtoTypeBean constructor getting called 2 times means diff objects are getting created
}
}
感谢,但没有奏效,我应该在哪里定义抽象getProtoTypeBean方法。 –
更新getProtoTypeBean()并将其抽象为 – Mudassar
我应该把它放在另一个抽象类 –