如何访问Prototype bean中先前创建的bean?

时间:2019-07-06 13:26:51

标签: java spring prototype spring-bean

我想创建一个具有随时提供的唯一名称的bean。我也想在每次调用它时使用此唯一名称创建一个新实例。我只想在某些情况下使用创建的唯一名称访问bean的旧实例。如果已经使用此名称创建了一个bean,那么我想带旧的bean。 我找到了原型bean来做到这一点。但是每次我调用bean时,它都会创建一个新实例。而且我找不到旧的bean。

示例:

public class MyPrototypeBean {

private String dateTimeString = LocalDateTime.now().toString();

public void showMessage(){
    System.out.println("Hi, the time is "+ dateTimeString);
   }
}


@Configuration
public class AppConfig {

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public MyPrototypeBean prototypeBean() {
    return new MyPrototypeBean();
}

public static void main(String[] args) throws InterruptedException {
    AnnotationConfigApplicationContext context =
            new AnnotationConfigApplicationContext(AppConfig.class);

    MyPrototypeBean bean4 = context.getBean(MyPrototypeBean.class);
    bean4.showMessage();
    Thread.sleep(1000);

    MyPrototypeBean bean5 = context.getBean(MyPrototypeBean.class);
    bean5.showMessage();
    Thread.sleep(1000);

    MyPrototypeBean bean6 = context.getBean(MyPrototypeBean.class);
    bean6.showMessage();
    Thread.sleep(1000);
 }
}

0 个答案:

没有答案
相关问题