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.创建模块
2.目录结构
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);
}
}