欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

@scope("prototype") @loadbalanced注解負(fù)載均衡失效問(wèn)題

 更新時(shí)間:2023年02月10日 08:57:11   作者:馬上就要下班了  
這篇文章主要為大家介紹了@scope("prototype") @loadbalanced注解負(fù)載均衡失效問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

用RestTemplate想在有ribbon負(fù)載均衡的功能下又可以配置多例來(lái)注入一些不固定的參數(shù),bean 單例的時(shí)候沒(méi)問(wèn)題多例的時(shí)候卻失效了,百度很久完全沒(méi)有這方面的答案,google了下starkoverflow有一篇回答解釋了

工具類

@scope(“prototype”)就是單純的new了一下,spring不管理bean,那注解就失效了,替代實(shí)現(xiàn)的方法就是傳一個(gè)LoadBalancerInterceptor的實(shí)例,根據(jù)這個(gè)思路我寫的工具類代碼如下:

@Configuration
public class RestTemplateManager {
    @Resource
    private LoadBalancerInterceptor loadBalancerInterceptor;

    /**
     * Time:millisecond
     * @param readtimout
     * @param connectionRequestTimeout
     * @param connectTimeout
     * @return HttpComponentsClientHttpRequestFactory
     */
    public HttpComponentsClientHttpRequestFactory getHttpRequestFactory(int readtimout,int connectionRequestTimeout,int connectTimeout) {
        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
        factory.setReadTimeout(readtimout);
        factory.setConnectionRequestTimeout(connectionRequestTimeout);
        factory.setConnectTimeout(connectTimeout);
        factory.setBufferRequestBody(false);
        return factory;
    }

    @Bean
    @Scope("prototype")
    public RestTemplate getConfigRestTemplate(HttpComponentsClientHttpRequestFactory factory) {
        RestTemplate restTemplate = new RestTemplate();
        //解決編碼問(wèn)題
        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
        restTemplate.setRequestFactory(factory);
        //add loadbalancerInterceptor,list is empty default
        restTemplate.getInterceptors().add(loadBalancerInterceptor);
        return restTemplate;
    }

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        //解決編碼問(wèn)題
        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
        return restTemplate;
    }
}

測(cè)試過(guò)默認(rèn)情況 restTemplate.getInterceptors()是空的,加入loadBalancerInterceptor就可以實(shí)現(xiàn)@loadbalanced的功能了,LoadBalancerAutoConfiguration依賴于loadBalancerInterceptor,ribbonInterceptor又是在LoadBalancerAutoConfiguration中聲明的,這就解釋了為什么加入loadBalancerInterceptor可以實(shí)現(xiàn)負(fù)載均衡的效果,關(guān)于怎么取這個(gè)loadBalancerInterceptor我研究了下用@Resource注解注入,在沒(méi)有聲明spring管理的類中@Autowired的是取不了實(shí)例的,而@Resource可以直接匹配原始類型注入,而且貌似是單例的,正好符合需要就這樣使用了,能力有限,有些東西也是一知半解,算是給需要的人提供一些思路吧。

以上就是@scope("prototype") @loadbalanced注解負(fù)載均衡失效問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于@scope @loadbalanced注解失效的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java通過(guò)工廠、Map容器創(chuàng)建對(duì)象的方法

    Java通過(guò)工廠、Map容器創(chuàng)建對(duì)象的方法

    這篇文章主要介紹了Java通過(guò)工廠、Map容器創(chuàng)建對(duì)象的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語(yǔ)句的工具類

    Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語(yǔ)句的工具類

    這篇文章主要為大家詳細(xì)介紹了如何利用Java編寫一個(gè)工具類,可以實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語(yǔ)句,感興趣的小伙伴可以了解一下
    2023-05-05
  • Java漢字轉(zhuǎn)拼音案例詳解

    Java漢字轉(zhuǎn)拼音案例詳解

    這篇文章主要介紹了Java漢字轉(zhuǎn)拼音案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Hibernate一級(jí)緩存和二級(jí)緩存詳解

    Hibernate一級(jí)緩存和二級(jí)緩存詳解

    今天小編就為大家分享一篇關(guān)于Hibernate一級(jí)緩存和二級(jí)緩存詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式

    阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式

    本文主要介紹了阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Spring boot集成spring session實(shí)現(xiàn)session共享的方法

    Spring boot集成spring session實(shí)現(xiàn)session共享的方法

    這篇文章主要介紹了Spring boot集成spring session實(shí)現(xiàn)session共享的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • SpringMVC配置404踩坑記錄

    SpringMVC配置404踩坑記錄

    本文主要介紹了SpringMVC配置404踩坑記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 詳解Java在redis中進(jìn)行對(duì)象的緩存

    詳解Java在redis中進(jìn)行對(duì)象的緩存

    這篇文章主要介紹了Java在redis中進(jìn)行對(duì)象的緩存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Kafka是什么及如何使用SpringBoot對(duì)接Kafka(最新推薦)

    Kafka是什么及如何使用SpringBoot對(duì)接Kafka(最新推薦)

    這篇文章主要介紹了Kafka是什么,以及如何使用SpringBoot對(duì)接Kafka,今天我們通過(guò)一個(gè)Demo講解了在SpringBoot中如何對(duì)接Kafka,也介紹了下關(guān)鍵類?KafkaTemplate,需要的朋友可以參考下
    2023-11-11
  • 使用Scala生成隨機(jī)數(shù)的方法示例

    使用Scala生成隨機(jī)數(shù)的方法示例

    這篇文章主要介紹了使用Scala生成隨機(jī)數(shù)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論