今天在做spring cloud作业遇到如下报错问题
Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'name' in value "${name}"
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'name' in value "${name}"
翻译一下就是:自动连接的依赖项注入失败;嵌套异常为java.lang.IllegalArgumentException:无法解析值“${name}”中的占位符“name”
引起原因:java.lang.IllegalArgumentException:无法解析值“${name}”中的占位符“name”
我的controller代码如下:
启动类代码如下:
检查发现并没有什么问题,在百度后我尝试了很多解决方法,见下:
1、查看nacos配置:
点击编辑后:
注意我的配置格式为Properties,所以下面第二点bootstrap.yml文件中nacos配置中为:
file-extension: properties
2、查看项目的bootstrap.yml文件:
第一处的name即刚刚自己nacos新建配置的DateID(可以省略后缀,nacos-test和nacos-test.propertis均可)
第二处的file-extension即创建nacos新建配置的配置格式
第三处的group创建nacos新建配置的Group
3、查看pom文件(这也是我出错的地方)
我新建项目添加的Dependencies如下
web和Eureka Discoverry Client两个
之后再在pom.xml文件添加如下依赖:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2021.0.1.0</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <!--nacos-discovery--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2021.1</version> </dependency>
我的整体pom.xml文件如下:
<?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.10</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>2021.0.6</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2021.0.1.0</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <!--nacos-discovery--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2021.1</version> </dependency> <!--web + actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <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> </project>
而是由于添加了Eureka Discoverry Client才导致报错
删除后刷新maven启动项目,运行成功
基本上出问题的地方就这三处,仔细检查一下吧
不断学习的代码小白一个,如有错误,欢迎各位大佬指正