spring singleton bean 注入 prototype bean 问题

代码场景:

1.首先定义了一个prototype的userDaobean 对象

spring singleton bean 注入 prototype bean 问题_第1张图片

2.在实现类UserImpl中注入userDao,并打印出各自的hashcode值

spring singleton bean 注入 prototype bean 问题_第2张图片

3.启动类调用

spring singleton bean 注入 prototype bean 问题_第3张图片

 结论:我这里调用了多次,但是发现就算是我定义了userDao的scope是prototype的,但是出来的hashcode是一样的,也就是说我们这样做的,就算是定义了scope为prototype的话,结果还是默认的singleton。

解决方案一: 实现ApplicationContextAware接口,这样可以做,但是耦合度太高了

spring singleton bean 注入 prototype bean 问题_第4张图片

解决方案二:使用注解 @Lookup

spring singleton bean 注入 prototype bean 问题_第5张图片

你可能感兴趣的:(java,spring,java)