【idea】解决springboot项目中遇到的问题

发布于:2024-06-16 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、Maven报错Could not find artifact com.mysql:mysql-connector-j:pom:unknown in aliyunmaven解决及分析

报错

创建springboot项目,勾选数据库驱动,springboot版本为3,现在改成了2.7.2,Maven就发生了报错Could not find artifact com.mysql:mysql-connector-j:pom:unknown in aliyunmaven

解决方法

(1)解决方法就是给mysql-connector-j指定版本

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
            <scope>runtime</scope>
        </dependency>

注意:因为这里使用的是8.0+版本的mysql驱动,所以在application.yaml中配置driver时要加cj

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver

使用6.0以上的mysql驱动,jdbc.driver为com.mysql.cj.jdbc.Driver。

如果springboot的版本为3时则不会报这个错误。因为springboot3.0+的版本有对mysql驱动进行版本控制,所以不需要手动指定版本。而低版本的springboot没有对mysql驱动进行版本控制,所以需要手动指定版本,否则报错。

(2)修改了之后,不要忘记了还要修改这两个依赖的版本,

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

二、报错Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'feedbackController' method 

报错

原因

这个错误信息表明Spring Boot应用程序在启动时遇到了一些问题,特别是在创建requestMappingHandlerMapping bean时发生了错误。错误的具体原因是feedbackController类中的某个方法存在不明确的映射,导致Spring无法确定该如何处理请求映射。

解决方法

  1. 检查Controller中的映射注解: 确保Controller类中的每个请求映射(@RequestMapping@GetMapping@PostMapping等)都是唯一且明确的。避免多个方法使用相同的路径和HTTP方法组合。
  2. 确保没有重复的控制器映射: 检查项目中是否存在多个控制器类使用了相同的请求路径和方法。例如,如果有两个控制器类都映射到相同的路径,这将导致冲突。

  3. 检查父类或接口中的映射: 如果feedbackController继承了某个父类或实现了某个接口,检查这些父类或接口中是否存在重复的请求映射。

  4. 排查其他配置类: 检查是否有其他配置类或组件可能影响了请求映射。确保它们没有定义与feedbackController冲突的请求映射。

  5. 查看错误信息的完整堆栈: 错误信息中包含了具体的方法和类的详细信息,可以帮助更准确地定位问题。

  6. 使用Spring Boot的调试工具: 可以启用Spring Boot的调试模式,通过添加spring.main.web-application-type=noneapplication.properties文件中,获得更详细的调试信息。

通过这些步骤,可以更准确地定位和解决Spring Boot应用程序中的请求映射冲突问题。如果有具体的代码片段或更多的错误堆栈信息,可以进一步提供来帮助更具体地解决问题。

通过检查之后,确实我的controller里有两个路径映射重复了,修改之后就不报这个错了。

三、knife4j报错Failed to introspect Class [com.github.xiaoymin.knife4j.spring.configuration

报错

Failed to introspect Class [com.github.xiaoymin.knife4j.spring.configuration

解决方法

(1)确认依赖项:确保 knife4j 的依赖已经正确添加到项目的构建配置中。

        <!--swagger-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>

下面是我的整个pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.water</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>3.0.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.11</version>
        </dependency>
        <!--添加热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>
        <!--gson数据-->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.9.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--热部署配置-->
                <configuration>
                    <!--fork:如果没有该项配置,整个devtools不会起作用-->
                    <fork>true</fork>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>


网站公告

今日签到

点亮在社区的每一天
去签到