无法使用 @Lookup 注释在单例 bean 中的原型范围内自动装配 bean

维克兰特·乔杜里

我创建了下面的类和接口,但原型 bean 构造函数没有被调用。我正在使用 @Lookup 来创建原型作用域 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
    }

}
穆达萨尔

将您的代码更改为以下步骤

 @Component("protoBean")
@Scope(value = "prototype") public class ProtoTypeBean implements IProtoTypeBean { 

@Lookup(value="protoBean")
public abstract ProtoTypeBean getProtoTypeBean();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Java Config:如何使用运行时参数创建原型范围的@Bean?

Spring bean的破坏方法,单例和原型作用域

创建带有注释的原型范围的Spring bean?

Spring原型bean与单例bean和依赖项注入结合使用。是否有仅配置的方法?

我不能使用注释来指示bean是主bean

将Spring bean范围从请求更改为单例的影响

Spring Boot无法自动装配@configuration类中的映射bean

无法在Junit中自动装配bean

@Component内的@Bean是单例吗?

使用条件Bean自动装配构造函数

为单例bean创建的引用会话bean /原型bean的实例数

如何在带有组件注释的bean中使用会话或请求范围的bean?

在bean中使用的自动装配服务

直接使用@Bean注释的方法

无法使用创建的bean

包含单例bean的原型bean使用后会被垃圾回收吗?

当范围是可选的时,使用范围内的bean?

StaticApplicationContext中的自动装配bean

在一个bean中作用域单例,并在另一个依赖bean中建立原型

无法自动连线Bean

如何使用@Bean注释配置子bean

如何通过使用构造函数注入将作用域代理bean注入单例bean

无法在 Spring 中使用构造函数自动装配 bean

使用 Spring 自动装配时创建 bean

如何使用注释 Bean 和 ComponentScan 正确创建 bean Spring?

具有单例范围和状态的 Bean

当我们使用 getBean 方法创建原型 bean 时,是否创建了 bean 属性(单例)的新实例?

创建 RequestScope bean 或回退到单例

使用构造型注释创建 Bean 时,Spring Context 似乎无法识别 Bean。抛出 NoSuchBeanDefinitionException