最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解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ì)話(huà),即在同一個(gè)會(huì)話(huà)中,被注解的Bean都是使用的同一個(gè)Bean,不同的會(huì)話(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工廠后置處理器

我們都知道,所有的掃描的類(lèi)信息都會(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)論

自贡市| 新野县| 车险| 班玛县| 漾濞| 台南县| 安福县| 突泉县| 肥东县| 龙岩市| 含山县| 阿勒泰市| 清远市| 安福县| 通河县| 五台县| 长沙县| 沂水县| 台北县| 都昌县| 江安县| 襄城县| 丰县| 金寨县| 庆元县| 藁城市| 八宿县| 浦江县| 临城县| 清苑县| 雷州市| 遂溪县| 宝应县| 武穴市| 安溪县| 林芝县| 驻马店市| 揭西县| 泸西县| 张家界市| 广南县|