报错内容大概如下
原因:往spring容器中的重复注入了【xxx】bean类

很多网上的搜索都是说jar包或依赖冲突,这里主要不说这个类型
很多时候对新手来说也可能是多次注入

比如:
定义了一个service类

@Service
public class CustomWebSocketHandler extends TextWebSocketHandler implements WebSocketHandler {  }

引用时

@Bean
    // 此处不需要用@Bean注解,因为CustomWebSocketHandler类已经存在@Service注解,已经放入了spring容器
    public WebSocketHandler customWebSocketHandler() {
        return new CustomWebSocketHandler();
    }

包括的其他类型还有比如:@Component 、@Controller等注解其实都是往spring容器中注入了类,所以在引用时千万不要再添加其它会注入容器的注解。

那假如是jar包冲突,那就应该在maven依赖或者gradle依赖中去除相关冲突依赖
在maven依赖中去除相关的包使用exclusions

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>io.seata</groupId>
                    <artifactId>seata-spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

在gradle中使用exclude

testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐