Java项目关于不同key的读取

.env 在mac中一种影藏文件,而在java 项目中,经常用来配置不同的变量,用来**.yml 中读取。

如以下示例:

.env 配置了,项目中需要的关健Key ,

内容如:

bash 复制代码
OPENAI_API_KEY=sk-be2f5f69f50c4528b90825658d7XXXX0
OPENAI_BASE_URL=https://api.deepseek.com
OPENAI_MODEL=deepseek-chat

在application.yml 文件中就可以读取到这个配置

bash 复制代码
spring:
  application:
    name: spring-ai-mcp-client
  profiles:
    active: dev
  ai:
    mcp:
      client:
        enabled: true
        name: spring-ai-mcp-client
        type: ASYNC
        request-timeout: 120s # 读取超时时间为120秒
        sse:
          connections:
            server1:
              url: https://mcp.amap.com
              sse-endpoint: /sse?key=80889a70a83c01ee56ec25425aeXXXXc
            server2:
              url: http://localhost:9060
              sse-endpoint: /sse
        stdio:
          servers-configuration: classpath:mcp-server.json

    openai:
      api-key: ${OPENAI_API_KEY}
      base-url: ${OPENAI_BASE_URL}
      chat:
        options:
          model: ${OPENAI_MODEL}
    vectorstore:
      redis:
        initialize-schema: true         # 是否初始化所需的模式
        index-name: lee-vectorstore     # 用于存储向量的索引名称
        prefix: 'embedding:'             # Redis 键的前缀


  data:
    redis:
      host: 127.0.0.1
      port: 9379
      password: 123456

logging:
  level:
    root: info

internet:
  websearch:
    searxng:
      url: http://localhost:6080/search
      counts: 10

依赖的maven的 pom.xml 配置

bash 复制代码
        <dependency>
            <groupId>io.github.cdimascio</groupId>
            <artifactId>dotenv-java</artifactId>
            <version>3.2.0</version>
        </dependency>

在项目启动的时候,需要把此.env 配置放到上下文中。

java 复制代码
import io.github.cdimascio.dotenv.Dotenv;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class Application {

    public static void main(String[] args) {

        // 加载.env文件
        Dotenv dotenv = Dotenv.configure().ignoreIfMissing().load();
        // 把.env文件中的变量设置到环境变量中
        dotenv.entries().forEach(entry -> System.setProperty(entry.getKey(), entry.getValue()));

        SpringApplication.run(Application.class, args);
    }

}
相关推荐
程序员清风7 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林5518 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
华仔啊14 小时前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing14 小时前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠1 天前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840821 天前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide1 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家1 天前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺1 天前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户908324602731 天前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端