zoukankan      html  css  js  c++  java
  • @Qualifier is not applicable for constructor

    问题场景:

    笔者在springboot项目中使用java_websocket作为客户端,调用第三方ws服务。

    最初只调用一个ws服务,以下代码可以正常工作:

       @Bean
        public URI ttsUri() throws URISyntaxException {
            return new URI("ws://1.1.1.1:8888/xxx");
        }
    
    @Slf4j
    @Component("ttsOfflineClient")
    public class OfflineTTSWsClient extends WebSocketClient {
    
      @Autowired
        public OfflineTTSWsClient(URI serverUri) throws IOException {
            super(serverUri);
        }
    ......
    }

    后来又加一个ws服务:ws://2.2.2.2:7777/aaaa 尝试写以下代码报错

    
    
    @Bean(name = "ttsUri")
    public URI ttsUri() throws URISyntaxException {
    return new URI("ws://1.1.1.1:8888/xxx");
    }

    @Autowired @Qualifier(value
    = "ttsUri") public OfflineTTSWsClient(URI serverUri) throws IOException { super(serverUri); } //报错:@Qualifier is not applicable for constructor

    正确方法

    @Autowired
    public OfflineTTSWsClient(@Qualifier(value = "ttsUri") URI serverUri) throws IOException {
       super(serverUri);
    }

    或者(注意两段代码差别)

    public OfflineTTSWsClient(@Qualifier(value = "ttsUri") URI serverUri) throws IOException {
      super(serverUri);
    }

    最终两个ws正常工作代码如下:

    @Bean(name = "ttsUri")
    public URI ttsUri() throws URISyntaxException {
        return new URI(""ws://1.1.1.1:8888/xxx");
    }
    
    @Bean(name = "asrUri")
    public URI asrUri() throws URISyntaxException {
        return new URI("ws://2.2.2.2:7777/aaaa");
    }
    
    @Slf4j
    @Component("ttsOfflineClient")
    public class OfflineTTSWsClient extends WebSocketClient {
    
    @Autowired
        public OfflineTTSWsClient(@Qualifier(value = "ttsUri") URI serverUri) throws IOException {
            super(serverUri);
        }
    }
    
    @Slf4j
    @Component("asrOfflineClient")
    public class OfflineASRWsClient extends WebSocketClient {
    
    
        public OfflineASRWsClient(@Qualifier(value = "asrUri") URI serverUri) 
       {
            super(serverUri);
        }
    }

     参考来源:https://stackoverflow.com/questions/42350828/why-qualifier-not-allowed-above-constructor

  • 相关阅读:
    python之set
    python之tuple
    python之list
    python之Number
    LAMP源码安装,搭建zabbix监控
    linux sshd服务
    linux rsync服务
    linux 实时同步inotify
    搭建LNMP;搭建WIKI
    数字,列表,函数
  • 原文地址:https://www.cnblogs.com/passedbylove/p/11805165.html
Copyright © 2011-2022 走看看