亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Spring中的@Scope注解

 更新時(shí)間:2023年07月21日 10:35:34   作者:小星向上  
這篇文章主要介紹了詳解Spring中的@Scope注解,@Scope注解是Spring IOC容器中的一個(gè)作用域,在Spring IOC容器中,他用來(lái)配置Bean實(shí)例的作用域?qū)ο?需要的朋友可以參考下

@Scope

Spring管理的Bean默認(rèn)是單例的

@Scope ("prototype") 通過(guò)注解可以實(shí)現(xiàn)多個(gè)實(shí)例的解決

Spring定義了多種作用域,可以基于這些作用域創(chuàng)建bean,包括:

  • 單例( singleton):在整個(gè)應(yīng)用中,只創(chuàng)建bean的一個(gè)實(shí)例。也就是單例
  • 原型(prototype):每次注入或者通過(guò)Spring應(yīng)用上下文獲取的時(shí)候:getBean,都會(huì)創(chuàng)建一個(gè)新的bean實(shí)例。多例,每次getBean的時(shí)候都會(huì)創(chuàng)建新的對(duì)象
  • request表示請(qǐng)求,即在一次http請(qǐng)求中,被注解的Bean都是同一個(gè)Bean,不同的請(qǐng)求是不同的Bean;
  • session表示會(huì)話,即在同一個(gè)會(huì)話中,被注解的Bean都是使用的同一個(gè)Bean,不同的會(huì)話使用不同的Bean。

具體的應(yīng)用大家可以去自己試試

單例 demo

@Controller
public class TestController {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

結(jié)果

我們多次從context里面去getBean的時(shí)候,都是返回的同一個(gè)對(duì)象

業(yè)務(wù)場(chǎng)景需要每次都獲得是新的對(duì)象

解決方案1:@Scope("prototype")注解

打印結(jié)果

當(dāng)我們從spring上下文中獲取對(duì)象的時(shí)候,返回的是不同的對(duì)象

解決方案二:Bean工廠后置處理器

我們都知道,所有的掃描的類信息都會(huì)被封裝成BeanDefine的形式,最終通過(guò)掃描的Bean定義信息來(lái)創(chuàng)建具體的對(duì)象,所以我們可以通過(guò)Bean工廠后置處理器來(lái)修改Bean定義信息達(dá)到我們目的

/**
 * BeanFactoryPostProcessor bean工廠后置處理器 : 修改bean定義
 */
@Component
public class FactoryPostProcesser implements BeanFactoryPostProcessor {
    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
        BeanDefinitionRegistry beanDefinitionRegistry =  (BeanDefinitionRegistry)configurableListableBeanFactory;
        BeanDefinition testController = beanDefinitionRegistry.getBeanDefinition("testController");//拿到bean定義信息
        testController.setScope("prototype");//修改bean的scope屬性
    }
}

Test Controller里面還是之前的代碼

打印結(jié)果:

到此這篇關(guān)于詳解Spring中的@Scope注解的文章就介紹到這了,更多相關(guān)Spring的@Scope注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論