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

}
相关推荐
边境悍匪8 小时前
蜗牛学苑 Java 智能体学习 Day40|Vue 工程化与 ElementPlus 思维导图复盘
java·vue.js·学习
唠玖馆8 小时前
c++AVL树
开发语言·c++
2401_858286118 小时前
130.【C语言】可变参数宏
c语言·开发语言
霸道流氓气质9 小时前
通义千问 VL & Audio:图像、视频、语音多模态 Java 集成深度解析
java·开发语言·音视频
jayson.h9 小时前
python-可视化提取表格-通用
开发语言·python
lemon_sjdk9 小时前
WCPoint、WebPageClient和Accessor类源码
java·安全·webkit·javafx
vx-Biye_Design9 小时前
springboot中国传统节日宣传平台49078-计算机课程设计、毕业设计
java·前端·vue.js·spring boot·后端·课程设计·idea
野生技术架构师9 小时前
从向量检索到混合搜索优化:Spring AI 2.0.1 + pgvector RAG 实战
java·人工智能·spring
零依赖极客9 小时前
《30 天手搓 ARM 架构零依赖纯 C 推理引擎》课程介绍与大纲
c语言·开发语言·arm开发·人工智能·嵌入式硬件·ai编程
qq_452396239 小时前
第三篇:《变量、类型与函数:Rust 的“基本盘”》
开发语言·后端·rust