Skip to content

common-env-starter

1. 功能介绍

1.提供了环境变量管理功能

  • 支持通过配置 .env 文件并在 application.yml 中直接使用 ${XXX} 的方式提取环境变量。

2.防止敏感数据泄露

  • 将敏感信息(如数据库用户名、密码、连接 URL 等)从代码和配置文件中隔离。

3.简化管理

  • 集中管理环境变量,提升项目的安全性与维护性。

2. 配置示例

1. application.yml 配置

yaml
sun-rays:
  env:
    path: /Users/sunxiansheng/IdeaProjects/sunrays-framework/sunrays-common-demo/common-env-starter-demo # .env 文件的绝对路径
spring:
  datasource:
    username: ${MYSQL_USERNAME} # 数据库用户名
    password: ${MYSQL_PASSWORD} # 数据库密码
    url: ${MYSQL_URL}           # 数据库连接 URL

2.env 文件配置

properties
MYSQL_USERNAME=your_database_username
MYSQL_PASSWORD=your_database_password
MYSQL_URL=jdbc:mysql://localhost:3306/your_database_name

3.案例演示

1.创建模块

CleanShot 2025-01-20 at 12.56.53@2x

2.目录结构

CleanShot 2025-01-20 at 13.03.01@2x

3.pom.xml

1.基本配置
xml
<!-- 通过properties来指定版本号 -->
<properties>
    <!-- 指定编译版本 -->
    <java.version>1.8</java.version>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- 指定Sunrays-Framework的版本 -->
    <sunrays.version>1.0.0</sunrays.version>
</properties>

<dependencyManagement>
<!-- 使用sunrays-dependencies来管理依赖,则依赖无需加版本号 -->
<dependencies>
    <dependency>
        <groupId>cn.sunxiansheng</groupId>
        <artifactId>sunrays-dependencies</artifactId>
        <version>${sunrays.version}</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
</dependencies>
</dependencyManagement>
2.引入依赖
xml
    <dependencies>
    <!-- common-env-starter -->
    <dependency>
        <groupId>cn.sunxiansheng</groupId>
        <artifactId>common-env-starter</artifactId>
    </dependency>
    <!-- 必须引入 -->
    <dependency>
        <groupId>cn.sunxiansheng</groupId>
        <artifactId>common-log4j2-starter</artifactId>
    </dependency>
</dependencies>

4.application.yml 配置日志根目录、.env文件的绝对路径以及测试被读取的变量

yaml
sun-rays:
  log4j2:
    home: /Users/sunxiansheng/IdeaProjects/sunrays-framework-demo/common-env-starter-demo/logs # 日志根目录(默认./logs)
  env:
    path: /Users/sunxiansheng/IdeaProjects/sunrays-framework-demo/common-env-starter-demo # .env文件的绝对路径
env:
  test: ${ENV_TEST} # 测试被读取的变量

5..env 配置变量

properties
ENV_TEST=123456

6.EnvConfig.java 读取填充后的变量

java
package cn.sunxiansheng.env.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;

/**
 * Description: Env配置类,测试读取数据
 *
 * @Author sun
 * @Create 2025/1/10 20:55
 * @Version 1.0
 */
@Configuration
@Slf4j
public class EnvConfig {

    @Value("${env.test}")
    private String test;

    @PostConstruct
    public void init() {
        // 测试读取
        log.info("test={}", test);
    }
}

7.EnvApplication.java 启动类

java
package cn.sunxiansheng.env;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Description: EnvApplication
 *
 * @Author sun
 * @Create 2025/1/20 12:59
 * @Version 1.0
 */
@SpringBootApplication
public class EnvApplication {

    public static void main(String[] args) {
        SpringApplication.run(EnvApplication.class, args);
    }
}

8.启动测试

CleanShot 2025-01-20 at 13.09.06@2x