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

@scope("prototype") @loadbalanced注解負載均衡失效問題

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

正文

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

工具類

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

@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();
        //解決編碼問題
        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();
        //解決編碼問題
        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
        return restTemplate;
    }
}

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

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

相關(guān)文章

  • SpringBoot配置動態(tài)數(shù)據(jù)源的實戰(zhàn)詳解

    SpringBoot配置動態(tài)數(shù)據(jù)源的實戰(zhàn)詳解

    Spring對數(shù)據(jù)源的管理類似于策略模式,不懂策略模式也沒關(guān)系,其實就是有一個全局的鍵值對,類型是Map<String, DataSource>,當JDBC操作數(shù)據(jù)庫之時,會根據(jù)不同的key值選擇不同的數(shù)據(jù)源,本文介紹了SpringBoot配置動態(tài)數(shù)據(jù)源的方法,需要的朋友可以參考下
    2024-08-08
  • 基于Intellij Idea亂碼的解決方法

    基于Intellij Idea亂碼的解決方法

    下面小編就為大家分享一篇基于Intellij Idea亂碼的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Java讀取傳輸FTP文件實現(xiàn)示例

    Java讀取傳輸FTP文件實現(xiàn)示例

    本文主要介紹了Java讀取傳輸FTP文件方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 詳解springMVC兩種方式實現(xiàn)多文件上傳及效率比較

    詳解springMVC兩種方式實現(xiàn)多文件上傳及效率比較

    本篇文章介紹了springMVC兩種方式實現(xiàn)多文件上傳及效率比較。springMVC實現(xiàn)多文件上傳有兩種,一種是字節(jié)流的方式進行文件上傳,另外一種是使用springMVC包裝好的解析器進行上傳,有興趣的可以了解一下。
    2016-12-12
  • 詳解Java 信號量Semaphore

    詳解Java 信號量Semaphore

    這篇文章主要介紹了Java 信號量Semaphore的相關(guān)資料,幫助大家更好的理解和學習Java并發(fā),感興趣的朋友可以了解下
    2020-09-09
  • 深入了解SpringBoot中的統(tǒng)一返回和統(tǒng)一異常處理

    深入了解SpringBoot中的統(tǒng)一返回和統(tǒng)一異常處理

    這篇文章主要為大家詳細介紹了SpringBoot項目中常用的統(tǒng)一返回結(jié)果和統(tǒng)一異常處理,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2024-01-01
  • Java實現(xiàn)畫圖 給圖片底部添加文字標題

    Java實現(xiàn)畫圖 給圖片底部添加文字標題

    這篇文章主要介紹了Java實現(xiàn)畫圖 給圖片底部添加文字標題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 實例講解Java并發(fā)編程之ThreadLocal類

    實例講解Java并發(fā)編程之ThreadLocal類

    這篇文章主要介紹了實例講解Java并發(fā)編程之ThreadLocal類,本文給出了模擬ThreadLocal、實用ThreadLocal等代碼實例,需要的朋友可以參考下
    2015-04-04
  • Spring RedisTemplate優(yōu)化連接Redis數(shù)據(jù)庫詳解

    Spring RedisTemplate優(yōu)化連接Redis數(shù)據(jù)庫詳解

    這篇文章主要介紹了Spring RedisTemplate優(yōu)化連接Redis數(shù)據(jù)庫,RedisTemplate是Spring Data Redis中的核心組件之一,它提供了對Redis數(shù)據(jù)庫的訪問功能,對于高性能的Redis操作,合理的優(yōu)化RedisTemplate的使用非常重要
    2025-02-02
  • 淺談Java中常用數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)類 Collection和Map

    淺談Java中常用數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)類 Collection和Map

    下面小編就為大家?guī)硪黄獪\談Java中常用數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)類 Collection和Map。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09

最新評論

庄河市| 富裕县| 格尔木市| 沐川县| 梁山县| 色达县| 抚顺市| 衡阳市| 云龙县| 安吉县| 乌兰浩特市| 肃宁县| 鞍山市| 抚州市| 巩留县| 盘山县| 南城县| 宝山区| 乌拉特中旗| 永城市| 翁源县| 新邵县| 天台县| 绥化市| 颍上县| 广宗县| 旬阳县| 子洲县| 江达县| 宜章县| 长春市| 洛隆县| 南投市| 安塞县| 保山市| 明光市| 久治县| 开远市| 凤台县| 鄯善县| 敖汉旗|