我正在尝试运行一个使用Docker-Compose运行的SpringBoot项目。我使用docker-compose up
启动了它的依赖项(Redis、MongoDB和RabbitMQ
我正在构建项目并使用以下命令运行它mvn clean package-dskiptests&mvn spring-boot:run
我总是犯这些错误:
在org.springframework.boot.autocigure.security.oauth2.client.oauth2restop erationsconfiguration$requestscopedconfiguration
上处理条件时出错
原因:java.lang.IllegalArgumentException:无法解析值“${OAUTH_CLIENTID}”
中的占位符“OAUTH_CLIENTID”
在docker-compose文件中,环境变量的值在environment部分中定义。
environment:
- RABBIT_HOST=rabbitstomp
- RABBIT_USER=guest
- RABBIT_PASS=user
- MONGO_HOST=mongodb://localhost:27017
- OAUTH_CLIENTID=nz-kek
- OAUTH_CLIENT_SECRET=DzXZxeOZOJHFZIUhObSpsne
- SSO_HOST=https://webweb.com
- CORS_HOSTS=HOST1,HOST2
- SES_HOST=ses
- SES_PORT=6000
- REDIS_HOST=localhost
- REDIS_PORT=6379
这就是application.yml的样子:
spring.data.mongodb:
database: ${DB_NAME} #notificationdb
uri: ${MONGO_HOST}
security:
oauth2:
resource:
jwk:
key-set-uri: ${auth-server:${SSO_HOST}}/keys
token-info-uri: ${auth-server:${SSO_HOST}}/userinfo
client:
client-id: ${OAUTH_CLIENTID}
client-secret: ${OAUTH_CLIENT_SECRET}`
我还尝试了mvn spring-boot:run-dspring-boot.run.arguments=--path.to.value=value1
,但我不确定路径应该如何使用key-set-uri:${auth-server:${SSO_HOST}}/keys
等变量
Spring支持通过PlaceHolderConfigurerSupport在配置中提供默认值。默认值是:
后面的值。在你的情况下,你应该这样写:
client-id: ${OAUTH_CLIENTID:yourDevelopmentDefaultClientID}
如果您使用@value
批注注入值,那么对于更复杂的情况,您可以支持SpEL使用#{someExpression}
类型的表达式。
更新:
key-set-uri: ${SSO_HOST:auth-server}/keys
一些有趣的参考资料:https://www.baeldung.com/spring-value-defaults
我试图在spring boot应用程序中添加一个环境变量。属性文件。我知道如何在非spring启动项目中正常添加它,但我找不到用于添加环境变量的字段,这就是我所看到的。 这是我的application.properties文件,这可能会有帮助。
在SpringBoot中读取环境变量的最佳方法是什么? 在Java中,我使用了以下方法: 是否可以使用注释来实现?
我有sbt多项目,并尝试在子项目的中设置如下: 测试将中止,并显示以下消息: 在测试文件中,我试图得到如下值: Intellj提供如下设置环境变量: 如何设置一个环境变量在为也? 更新 根如下所示: 我还是有例外。
platformVersion和environment始终为空。在日志中:添加[class path resource[tests.properties]]PropertySource以最低的搜索优先级。我看到stackoverflow上的其他帖子(Autowired Environment是空的),我不想去实现EnvironmentAware。为环境而将私人改为公共并不能解决问题。任何其他想法都
我需要我的应用程序应该从环境变量而不是应用程序中选择键的值。yml。 > 如果环境变量中不存在特定属性,则应从应用程序中选取值。yml,否则。
本文向大家介绍SpringBoot+docker环境变量配置详解,包括了SpringBoot+docker环境变量配置详解的使用技巧和注意事项,需要的朋友参考一下 项目中遇到springBoot+docker需要配置不同环境变量的问题,做个简单的总结: 1.开发环境ide中启动项目 可以通过ide的环境变量参数配置,启动之后使用哪个配置,比如 这样就使用application-test.yml中的