几款常见工具和框架的环境变量配置实践
不少开发工具和框架,都或多或少地依赖环境变量来进行配置,下面介绍几款比较流行的工具和框架。
GoFr
GoFr是一个用Go语言编写的微服务框架,专注于简化微服务的开发和部署。它提供了一套完整的工具和库,帮助开发者快速构建高性能、可扩展的微服务应用。
其配置项,GoFr Config,几乎完全是基于环境变量的。
在开发阶段,你只需要configs/.env
文件来保存配置项,而在生产环境中,你可以通过环境变量来覆盖这些配置项。
Deno
Deno是一个基于V8引擎的JavaScript和TypeScript运行时,旨在提供一个安全、现代化的开发环境。Deno内置了对TypeScript的支持,并且默认启用了许多安全特性,如权限控制和模块化。
Deno默认支持.env
文件,如deno run --env-file main.ts
,可以轻松为Deno应用加载环境变量配置项。
此外Deno自身的配置,也是基于环境变量的,可以通过Special environment variables进行查看。
Bun
Bun是一个现代化的JavaScript Runtime,旨在提供更快的性能和更高的效率。Bun内置了许多功能,如打包、转译和测试,简化了JavaScript开发流程。
Bun默认集成了PostgreSQL, MySQL, Redis,S3等支持,这些服务的连接配置,都是通过环境变量进行配置的:
- POSTGRES_URL
- MYSQL_URL
- REDIS_URL
- S3相关环境变:S3_ENDPOINT,S3_ACCESS_KEY_ID,S3_SECRET_ACCESS_KEY,S3_BUCKET
Spring Boot
虽然Spring Boot的配置项主要是通过application.properties
或application.yml
文件进行配置的,但是Spring Boot也支持通过环境变量来覆盖配置项,
环境变量的命名规则是将配置项中的.
替换为_
,并且全部大写。
Spring Boot还有一个特性就是可以通过SPRING_APPLICATION_JSON
环境变量来设置配置项,这样你也可以通过.env
文件来设置Spring Boot的配置项,如下:
SPRING_APPLICATION_JSON=‘{"spring.datasource.url":"jdbc:mysql://localhost:3306/mydatabase","spring.datasource.username":"user","spring.datasource.password":"password"}’
FastAPI/Flask
这两者都提供了对应的配置接口,直接通过python-dotenv
加载.env
文件,然后通过os.getenv
获取配置项即可,这个也是非常常见的做法。
Rust Cargo
Cargo的Environment Variables太多啦,根本就读不完。