springboot中使用spring-cloud-starter-openfeign遇到的问题及解决参考

发布于:2024-05-20 ⋅ 阅读:(222) ⋅ 点赞:(0)

声明:本文使用的spring boot 版本是2.7.12

在springboot中使用spring-cloud-starter-openfeign遇到的一些问题:

Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata

java.lang.IllegalStateException: Failed to load ApplicationContext

在这里插入图片描述

Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]

在这里插入图片描述

Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required

最终解决方案:

上述问题主要原因是spring boot 与spring boot的版本不兼容出现的问题

1、pom.xml文件导入正确的依赖

本文使用的spring boot版本:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.12</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

增加 <spring-cloud.version>2021.0.9</spring-cloud.version>:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring-cloud.version>2021.0.9</spring-cloud.version>
    </properties>

增加dependencyManagement:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

增加自己要用的:

<!--http请求-->
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.2.7.RELEASE</version>
        </dependency>

说明:使用<spring-cloud.version>2021.0.9</spring-cloud.version>2021.0.9版本的原因:

https://docs.spring.io/spring-cloud/docs/2021.0.9/reference/html/
在这里插入图片描述

在这里插入图片描述
spring 官网说spring cloud2021.0.9版本基于支持的spring boot版本为2.6.15,然后其他版本高于本文使用的2.7.x版本,所以选择spring cloud2021.0.9。

2、导入注解

@EnableFeignClients
在这里插入图片描述
无需加入数据库自动注解→exclude= {DataSourceAutoConfiguration.class}
否则会出现错误Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

参考:
1、版本兼容问题:https://blog.csdn.net/joshua317/article/details/120422180
2、IllegalArgumentException: Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required问题:https://zhuanlan.zhihu.com/p/523730118


网站公告

今日签到

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