SpringBoot多实例Bean注入问题

有个多实例的需求,现在需要将这个bean注入,发现用@Autowired注入并不能实现多实例(在bean上添加了@Scope("prototype")的前提下)

1
2
3
4
5
6
7
8
9
// 本想着在bean上添加@ Scope注解,然后用@ Autowired引入即可
// 结果发现还是单例的存在,方法不可行 XXX
@Bean
@Scope("prototype")
public TPromotionSeckill getKill(){
TPromotionSeckill seckill = new TPromotionSeckill();
seckill.setPsCount(10);
return seckill;
}

解决方法

注入BeanFactory对象,调用其getBean方法即可

1
2
3
4
5
@Autowired
private BeanFactory factory;
// 此时得到的对象即为多例
// 第一步也不可缺少,添加@Scope
TPromotionSeckill seckill = factory.getBean(TPromotionSeckill.class);
赏个🍗吧
0%