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

  • 相关阅读:
    js全局变量
    $.getJSON异步请求和同步请求
    让js中的函数只有一次有效调用
    两个div并排显示,当浏览器界面缩小时会出现换行
    jquery获取窗口和文档的高度和宽度
    后台传带引号(")的数据需要注意
    C# dynamic
    (转)数据库函数解析JSON字符串
    Unicode和UTF-8
    用户通过浏览器修改表单隐藏域
  • 原文地址:https://www.cnblogs.com/passedbylove/p/11805165.html
Copyright © 2011-2022 走看看