spring,springboot中依赖注入(@Autowire)多例模式不生效的问题

对于mvc应用,spring虽然提供了bean的多例,也就是加入

@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)

例如,我们需要实现控制层每访问一次service层都获取一个实例,而不是同一个实例。但实际上,在启动服务后,使用@Autowire只注入了一个实例,img

解决办法如下

1.使用多例模式代理(推荐)

@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode = ScopedProxyMode.TARGET_CLASS)

2.使用ObjectFactory(手动)

​ 熟悉ioc的对ObjectFactory都不陌生,它通过泛型,可以直接获取该种类型的bean

@Autowire
ObjectFactory<T> factory
//使用
factory.getObject()

3.使用传统ioc(不推荐,虽然和第二种相似,但感觉这样,自动注入失去了意义,强迫症勿用)

@Autowired
private BeanFactory beanFactory;

Object object = beanFactory.getBean(Object.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值