Я хочу создать бин с уникальным именем, которое я дал в любое время. Я также хочу создавать новый экземпляр с этим уникальным именем каждый раз, когда я его называю. Я просто хочу достать старый экземпляр компонента с таким уникальным именем, созданным в некоторых случаях. Если бин уже был создан под этим именем, я хочу взять старый боб.
Я нашел прототип для этого. Но каждый раз, когда я вызываю 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);
}
}