SpringBoot项目在yml或者properties文件中使用环境变量

当我们在SpringBoot打包的服务时,一些参数需要从外界获取,而非写死在properties文件里,可以通过以下两步方式配置:

1.在配置文件中配置环境变量

spring:
  datasource:
      driverClassName: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:table}?useUnicode=true&characterEncoding=UTF-8
      username: ${DB_USER:root}
      password: ${DB_PASSWORD:root}

我们只需要在环境变量中添加以下两个
DB_USER=root
DB_PASSWORD=root

修改环境变量值重启服务后生效

以上案例中,例如:  ${DB_HOST:localhost}  服务会先在系统环境变量中获取值,如果获取不到则使用默认值为 localhost

2.如果在docker容器中启动时,也可以下方式传入环境参数

docker run -d --name test2 {镜像名} -e REDIS_HOST=192.1.1.0

### 解决Spring Boot项目中缺少`application.properties`文件的问题 在Spring Boot项目中,如果缺少`application.properties`文件,可能会导致配置加载异常或其他运行时错误。以下是关于如何解决此问题的详细说明: #### 1. 默认路径与命名规则 Spring Boot默认会在项目的`src/main/resources`目录下查找名为`application.properties`或`application.yml`的配置文件[^3]。如果没有找到这些文件,则可能导致某些功能无法正常工作。 #### 2. 手动添加`application.properties` 如果确实缺失该文件,可以在上述指定位置手动创建一个`application.properties`文件。即使文件为空,也可以满足框架的基本需求。例如: ```properties # 这是一个简单的application.properties文件示例 server.port=8080 spring.application.name=my-app ``` #### 3. 配置其他替代方案 如果不希望使用默认名称或路径,可以通过设置环境变量或命令行参数来指定自定义配置文件的位置。例如: ```bash java -Dspring.config.location=/path/to/config/application.properties -jar myapp.jar ``` 这种方式允许开发者灵活调整配置文件的位置和名称[^4]。 #### 4. Maven依赖冲突排查 有时,由于Maven依赖版本不匹配或者本地仓库损坏,也可能间接引发此类问题。可以尝试清理并重新下载依赖项: ```bash mvn clean install -U ``` 另外,如果遇到类似`NoClassDefFoundError`这样的错误,可能是因为使用的第三方库版本过旧或存在兼容性问题。此时可参考如下方法更换镜像源以获取最新稳定版JAR包[^2]: 编辑`${MAVEN_HOME}/conf/settings.xml`文件,在其中增加阿里云镜像配置片段即可。 --- ### 总结 通过以上措施能够有效应对因缺乏必要资源而导致的各种潜在隐患;同时提醒广大使用者务必重视基础架构搭建环节中的每一个细节部分以免后续维护成本过高!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值