我无法创建属性,因为我收到此错误:
org.springframework.beans.factory.BeanCreationException:创建名为'configClient'的bean时出错:注入自动连接的依赖项失败;嵌套异常是java.lang.IllegalArgumentException:无法解析值“$ {user.role}”中的占位符'user.role'
我正在学习本教程:
http://www.baeldung.com/spring-cloud-configuration
我正在使用
@Value("${user.role}")
和
@Value("${user.role:}")
无法获取任何信息。
答案 0 :(得分:0)
尝试本教程时,我遇到的问题与您相同。看来客户端无法达到服务器来解析属性“ user.role”,在我的情况下,错误是错误的属性:
spring.application.name: config-client
如果可以使用configs访问github存储库,则可以检查服务器的配置。在服务器运行的情况下,如下所示:
curl http://root:s3cr3t@localhost:9090/config-client/development/master [13:26:43]
{"name":"config-client","profiles":["development"],"label":"master","version":"80d048de5faa3314429a1fce1645917786da28d6","state":null,"propertySources":[{"name":"https://gitlab.com/marcosnasp/spring-config-baeldung-tutorial.git/config-client-development.properties","source":{"user.role":"Developer"}}]}%
我同时使用了yml config和用于服务器9090的其他端口(默认情况下为客户端端口),因为我尚未在application.properties中进行配置,其外观为8080,客户端和服务器,如下所示:>
客户端配置:
bootstrap.yml
spring:
application:
name: config-client
profiles:
active: development
cloud:
config:
uri: http://localhost:9090
username: root
password: s3cr3t
fail-fast: true
服务器配置:
bootstrap.yml
spring:
application:
name: delivery-config-server
encrypt:
key-store:
location: classpath:/config-server.jks
password: my-s70r3-s3cr3t
alias: config-server-key
secret: my-k34-s3cr3t
application.yml:
server:
port: 9090
spring:
cloud:
config:
server:
git:
uri: https://gitlab.com/marcosnasp/spring-config-baeldung-tutorial.git
timeout: 10
clone-on-start: true
security:
user:
name: root
password: s3cr3t