java - 如何在 Prototype bean 中访问以前创建的 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);
}
}
解决方案
推荐阅读
- python-3.x - 从阿拉伯语字符串中删除英文单词
- plpgsql - 为 plpgsql 函数返回复合类型时的意外行为
- apache-kafka - 如何为数据库事务实现 kafka 手动偏移提交
- html - 使用 CSS 居中内联块
- laravel - Laravel:为什么每条路线都执行两次?
- jquery - allowadditions 下拉菜单的语义 UI 设置值
- python - 如何在 Google Cloud Infrastructure 中通过电子邮件发送脚本结果(关于 Pub/Sub 和电子邮件及其他选项的设计查询)
- javascript - 从 Object.defineProperties() 定义的函数调用中获取“this”
- html - Bootstrap Multiselect - 冲突的CSS
- excel - 如何将数据从一个单元格复制到另一个单元格 - 取决于它旁边的单元格?