Skip to main content

几款常见工具和框架的环境变量配置实践

· 3 min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

不少开发工具和框架,都或多或少地依赖环境变量来进行配置,下面介绍几款比较流行的工具和框架。

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.propertiesapplication.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太多啦,根本就读不完。