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);
    }

}
相关推荐
星梦清河17 分钟前
Java—异步编程
java·开发语言
GIS数据转换器22 分钟前
智慧能源管理平台
java·大数据·运维·人工智能·无人机
garmin Chen27 分钟前
LeetcodeHot100打卡(14、合并空间,15、轮转数组,16、除了自身以外数组乘积,17.缺失的第一个整数)
java·笔记·学习·算法
接着奏乐接着舞28 分钟前
dto 转entity方法
java·开发语言
我命由我1234532 分钟前
Android 开发问题:项目同时引入了两个包含相同类文件的库(AndroidX 库、旧版本支持库),导致了重复类错误
android·java·java-ee·android studio·android-studio·androidx·android runtime
0x000737 分钟前
译 Anders Hejlsberg 谈 C# 与 .NET
开发语言·c#·.net
梓色系38 分钟前
Spring AI 实战:从零搭建 MCP 客户端与服务端,让大模型拥有“手脚“
java·人工智能·spring
czhaii43 分钟前
基于51单片机的Modbus从机通信系统
开发语言·单片机
elseif1231 小时前
【C++】vector 详细版
开发语言·c++·算法
秦时星星1 小时前
Spring AI + FastMCP 跨语言集成踩坑实录
java·人工智能·spring