当前位置: 首页 > article >正文

IDEA中使用.env文件配置信息

一、说明

我们以配置阿里云的 Access Key 的信息为例(配置别的信息当然也可以,我只是举个例子!!!),假设我们的代码中需要用到它。Access Key有两个属性,分别为【ALIBABA_CLOUD_ACCESS_KEY_ID】和【ALIBABA_CLOUD_ACCESS_KEY_SECRET】,都是需要配置的。

配置完成之后我们在一个SpringBoot框架搭建的一个应用中演示一下怎么使用它(当然还有很多别的使用方法,这里只是做一个演示!!!)。

依赖:

SpringBoot + Lombok + SpringBoot Test

二、步骤

2.1 配置

在项目目录下创建.env文件,我这里是和POM文件在同一个目录下,配置两个属性的值:

ALIBABA_CLOUD_ACCESS_KEY_ID = xxxxx
ALIBABA_CLOUD_ACCESS_KEY_SECRET = xxxxx

 在 .gitignore文件下添加如下信息,我们配置的.env文件就可以不会被传到git仓库中去了,保证信息的安全(是否配置还是视情况而定,如果要发布到组织外部的代码仓库当然要配置起来了hhhh):

### .env profile ###
.env

 安装一个EnvFile插件:

之后再点击 【Edit Configuration】:

① 选中 Enable EnvFile

② 添加刚才添加的那个 .env 文件,最后点击 apply

2.2 使用 

因为我们这里以一个SpringBoot搭建的 Web 应用为例,将应用参数设置为可配置的。

首先创建一个配置类:

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "pan") // 自定义前缀“pan”
public class AppProperties {

    @Getter
    @Setter
    private Ali ali = new Ali();

    @Getter
    @Setter
    public static class Ali {
        private String apiKey;    // 定义两个key
        private String apiSecret;
    }
}

在 application.yml 文件中用 ${变量名} 的方式,读取在.env文件中设置的两个参数,其中“pan”为我自定义的前缀:

pan:
  ali:
    api-key: ${ALIBABA_CLOUD_ACCESS_KEY_ID}
    api-secret: ${ALIBABA_CLOUD_ACCESS_KEY_SECRET}

创建一个单元测试,看看是否能读取成功:

@SpringBootTest
public class MyTest {
    @Autowired
    AppProperties appProperties;
    @Test
    public void test() {
        System.out.println("ALIBABA_CLOUD_ACCESS_KEY_ID = " + appProperties.getAli().getApiKey());
        System.out.println("ALIBABA_CLOUD_ACCESS_KEY_SECRET = " + appProperties.getAli().getApiSecret());
    }
}

是可以的嗷~

 


http://www.kler.cn/a/37328.html

相关文章:

  • 制作tomcat镜像
  • THREE.JS镜头随鼠标晃动效果
  • 微信小程序常用组件的简单使用 view,scroll-view,swiper,swiper-item,text,rich-text,button,image
  • Windows7中使用SRS集成音视频一对一通话
  • .NetCore录屏生成Gif动图程序(Form)的开发过程[代码已上传GitCode]
  • 2023年最具威胁的25种安全漏洞(CWE TOP 25)
  • 计算机视觉:卷积核的参数可以通过反向传播学习到吗?
  • 基于STM32的homeassistant(采用FreeRTOS操作系统)【第二章:采集DHT11数据上传服务器;接收服务器指令执行对应操作】
  • DuiLib中的list控件以及ListContainerElement控件
  • java高并发系列 - 第34篇:google提供的一些好用的并发工具类
  • spring复习:(6) AbstractBeanDefinition
  • 干货 | 一个漏洞利用工具仓库
  • SpringBoot+微信小程序在线订餐小程序系统 附带详细运行指导视频
  • QT之滑动切换UI框架
  • Element-案例-脚本页面布局
  • 小红书Java后端一面,被问麻了
  • 什么是vlan为什么要划分vlan
  • MyBatis 的架构
  • element-ui 使用 el-descriptions
  • Spring FrameWork从入门到NB - ApplicationContext