一、说明
我们以配置阿里云的 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());
}
}
是可以的嗷~