AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
一个Singleton的Bean中Autowired了一个prototype的Bean,每次调用SingletonBean.doSomething()时打印的对象是不是同一个呢? ~~~java @Service public class SingletonBean{ @Autowired private PrototypeBean prototypeBean; public void doSomething(){ System.out.println(prototypeBean.toString()); } } @Component @Scope(value="prototype") public class PrototypeBean{ } ~~~ 因为Singleton是单例的,所以在项目启动时就会初始化,prototypeBean本质上只是它的一个Property,那么ApplicationContex中只存在一个SingletonBean和一个初始化SingletonBean时创建的一个prototype类型的PrototypeBean。 那么每次调用SingletonBean.doSomething()时,Spring会从ApplicationContex中获取SingletonBean,每次获取的SingletonBean是同一个,所以即便PrototypeBean是prototype的,但PrototypeBean仍然是同一个。每次打印出来的内存地址肯定是同一个