mac下idea设置spring.profiles.active问题

mac下idea设置spring.profiles.active问题,第1张

在springboot项目中,通过idea在配置springprofilesactive

(1)在windows下点击idea的启动,可以通过SystemgetProperty("springprofilesactive")获取到dev值

(2)在mac下点击idea的启动,同样的配置,但通过SystemgetProperty("springprofilesactive")时获取到的值是null;

对比:

(1)在windows启动时,控制台输出:

参数设置被直接以-Dspringprofilesactive=dev追加到了 java命令之后,是以虚拟机参数进行设置

(2)在mac启动时,控制台输出:

参数设置被直接以--springprofilesactive=dev追加到了 启动类命令之后

在命令运行时,连续两个减号 --就是对applicationproperties中属性值进行赋值的标志。

那么在mac下可以通过设置VM options来达到windows相同的效果

这时,命令窗会出现:

        但是这样的话就会出现多个springprofilesactive(-Dspringprofilesactive=dev和最末尾--springprofilesactive=dev);那么两个值最终取的是哪个呢? 按照springboot配置加载优先级来看,最终程序中使用优先级更高的--springprofilesactive;

        需要注意:-Dspringprofilesactive=dev是将值设置到了虚拟机中,通过SystemgetProperty("springprofilesactive")可以获取到dev;但是使用--springprofilesactive=dev使用SystemgetProperty("springprofilesactive")是获取不到的。

        Spring Boot 所提供的配置优先级顺序比较复杂。按照优先级从高到低的顺序,具体的列表如下:

1命令行参数。

2通过 SystemgetProperties() 获取的 Java 系统参数。

3 *** 作系统环境变量。

4从 java:comp/env 得到的 JNDI 属性。

5通过 RandomValuePropertySource 生成的“random”属性。

6应用 Jar 文件之外的属性文件。(通过springconfiglocation参数)

7应用 Jar 文件内部的属性文件。

8在应用配置 Java 类(包含“@Configuration”注解的 Java 类)中通过“@PropertySource”注解声明的属性文件。

9通过“SpringApplicationsetDefaultProperties”声明的默认属性

Windows系统启动taro小程序时,有时会遇到下面的报错,提示“REACT_APP_ENV不是内部命令”。

参考链接: >

在applicationyml或者properties文件中添加:

infoaddress=USA

infocompany=Spring

infodegree=high

激活 @ConfigurationProperties

我们可以通过下面几种方式将其添加到应用上下文中

首先,我们可以通过添加 @Component 注解让 Component Scan 扫描到

资源目录下建立config/db-configproperties:

dbusername=root

dbpassword=123456

@Autowired

private Environment env;

// 获取参数

String getProperty(String key);

@conditionalonproperty(name = "XXX",havingValue = "true")

参考文献

官网总是写的那么含蓄,默认我们不是萌新。

>

配置数据库配置文件的方法: 1首先先创建一个dbproperties的配置文件。在配置文件中输入配置信息如下: driver=commicrosoftsqlserverjdbcSQLServerDriver url=jdbc:sqlserver://localhost:1433;DatabaseName=books user=sa password=sa 2创建一个加载dbproperties的文件Envjava。在java文件中加载配置信息如下: public class Evn extends Properties{ private static Evn instance; private Evn(){ //通过构造方法读取配置文件 InputStream is=getClass()getResourceAsStream("/dbproperties"); try { load(is); } catch (IOException e) { // TODO Auto-generated catch block eprintStackTrace(); } } public static Evn getInstance(){ //单例模式创建、获得对象实例。if(instance==null){ makeInstance(); } return instance; } public static synchronized void makeInstance() { if(instance==null){ instance=new Evn(); } } } 3读取数据方法 public class Test { public static void main(String[] args){ String driver=EnvgetInstance()getProperty("driver"); String url=EnvgetInstance()getProperty("url"); String user=EnvgetInstance()getProperty("user"); String password=EnvgetInstance()getProperty("password"); Systemoutprintln(driver); Systemoutprintln(url); Systemoutprintln(user); Systemoutprintln(password); } }

复制envexample到env

我记得应该是没有env的。env是环境文件,在做开发的时候,格式都会备份一个到envexample文件,所以,你复制完,根据自己的环境做一些更改就好了

没有重新加载环境变量等原因。

1、没有重新加载环境变量,修改env文件后,需要重新加载环境变量才能使更改生效,可尝试在终端中运行以下命令:source,env。

2、环境配置有误,env文件定义的环境变量是由系统加载的,对于一些特殊的编辑器或者IDE,配置方式不同,需要设置环境变量的方式也不同,如果环境配置有误也可能导致快捷键不生效。

以上就是关于mac下idea设置spring.profiles.active问题全部的内容,包括:mac下idea设置spring.profiles.active问题、REACT_APP_ENV不是内部命令问题解决办法、Spring Boot读取配置的几种方式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9782666.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存