@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
@Qualifier is not applicable for constructor的更多相关文章
- Java-Class-@I:org.springframework.beans.factory.annotation.Autowired
ylbtech-Java-Class-@I:org.springframework.beans.factory.annotation.Autowired 1.返回顶部 2.返回顶部 1. pack ...
- 【Spring Framework】spring管理自己new的对象
使用AutowireCapableBeanFactory手动注入 使用.newInstance();创建对象的话,如果其他对象都使用Spring Autowired,还需要手动创建所有依赖的Bean: ...
- Java 设计模式--策略模式,枚举+工厂方法实现
如果项目中的一个页面跳转功能存在10个以上的if else判断,想要做一下整改 一.什么是策略模式 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决 ...
- Spring实战3:装配bean的进阶知识
主要内容: Environments and profiles Conditional bean declaration 处理自动装配的歧义 bean的作用域 The Spring Expressio ...
- [IoC]6 详解@Autowired、@Qualifier和@Required
A.@Autowired org.springframework.beans.factory.annotation.Autowired public @interface Autowired Mark ...
- 详解@Autowired、@Qualifier和@Required
A.@Autowired org.springframework.beans.factory.annotation.Autowired public @interface Autowired Mark ...
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-004-消除BEAN自动装配的歧义@QUALIFIER及自定义注解
一. The @Qualifier annotation is the main way to work with qualifiers. It can beapplied alongside @Au ...
- 使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 bean 将会被装配来消除混乱
1.当你创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的某一个进行装配,在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释来精确配置. 2.示例 ...
- Spring 的@@Autowired 和 @Qualifier注释
@Autowired spring2.1中允许用户通过@Autowired注解对Bean的属性变量.属性Setter方法以及构造方法进行标注,配合AutowiredAnnotationBeanProc ...
随机推荐
- 【PAT-二叉树】L2-011. 玩转二叉树- 仅仅开100大的数组模拟即可!
L2-011. 玩转二叉树 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.(我的分析:无非就是说把左子树当成 ...
- 胡搞-强化版的light oj-1055-的思路-AI版的6重暴力For循环的BFS
新题目大意: 三个棋子按照先后顺序,可以随意方向合法地走到空位置上(而不是像原题light oj-1055中的一样三个棋子每次走的方向都一致),当三个棋子全部走进目标地点,就结束:求需要指挥的最少次数 ...
- P2P system: FastTrack and BitTorrent
FastTrack FastTrack来源于Gnutella,是Gnutella 和 Napster的杂交体 有些node承担了更重要的责任,这些nodes称为supernodes,因为这些改进,它比 ...
- 06_Tutorial 6: ViewSets & Routers 视图集与路由器
1.Tutorial 6: ViewSets & Routers 视图集与路由器 0.文档 https://q1mi.github.io/Django-REST-framework-docum ...
- 064_将 Linux 系统中 UID 大于等于 1000 的普通用户都删除
#!/bin/bash#先用 awk 提取所有 uid 大于等于 1000 的普通用户名称#再使用 for 循环逐个将每个用户删除即可 user=$(awk -F: '$3>=1000{prin ...
- 18.4.09 模拟考 zhx P75
题目链接 https://files.cnblogs.com/files/lovewhy/P75.pdf P75 竞赛时间: ????年??月??日??:??-??:?? 注意事项(请务必仔细阅读) ...
- tsnr--基于vpp+dpdk的高性能防火墙
tsnr--基于vpp+dpdk的高性能防火墙 2019年01月31日 12:06:00 网络安全研发随想 阅读数:508 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...
- puppteer的使用
官方文档:Puppeteer 今天大概介绍一下我项目用到的puppeteer操作: // 启动浏览器 const browser = await puppeteer.launch({ executab ...
- hbuilder mui html vue ul li 自定义循环赋值ID
<ul class="mui-table-view mui-table-view-chevron"> <li class="mui-table-view ...
- (转)supervisor
转载:https://www.cnblogs.com/zhoujinyi/p/6073705.html 进程管理supervisor的简单说明 背景: 项目中遇到有些脚本需要通过后台进程运行,保证不被 ...