springboot配置文件中属性变量引用方式@@解读
作者:BeALittleCat 发布时间:2023-11-24 20:39:18
springboot配置文件中属性变量引用@@
这种属性应用方式是field_name=@field_value@。
两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用。
@@方式可以引用springboot非默认配置文件(即其他配置文件)中的变量;
springboot默认配置文件是src/main/resources/application.properties
引用属性变量方式之@@和${}的用法
整理这篇文章,主要是项目中用到了此配置,由于之前并未这么配过,所以碰到了还真有点茫然。
熟悉的环境区分配置方式
直接在application.properties中配置spring.profiles.active属性来区分环境即可。
@@到底是什么?
${}和@@都是springboot引用属性变量的方式。
${}和@@的使用
1)${}的使用
最常用的就是在pom文件中对版本号的配置使用,比如如下:
<properties>
<swagger.version>2.8.0</swagger.version>
</properties>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
还有就是在配置文件或者.sh文件中的赋值操作,比如如下:
IMAGES_NAME=brain-health-openplatform
CONTAINER_NAME=brain-health-openplatform
APP_PORT=7701
APP_HOME=/home/admin/brain-health-openplatform
#启动容器
docker run -d --name ${CONTAINER_NAME} -p ${APP_PORT}:${APP_PORT} -v ${APP_HOME}/logs:/logs ${CONTAINER_NAME}
2)@@的使用
@@方式常用于引用springboot非默认配置文件(即其他配置文件)中的变量,是springboot为替代 属 性 占 位 符 产 生 , 原 因 是 {}属性占位符产生,原因是 属性占位符产生,原因是{}会被maven处理,所以引用非默认配置文件时起不到引用变量的作用。
就比如我们项目中yml是起到整体作用的,通过四个环境的配置文件,来注入不同的value值。自我感觉就和最开始的prod和test文件夹的效果是一样的。
3)@@引入普通的value值
其实自己最开始的疑问并不是如何注入,而是看项目中的注入都是有归属关系的,就比如属于server/spring or mybatis 又或者logging等。那么我就想配置一个普通的链接路径,该如何弄呢?
其实想复杂了,只需要直接把properties中的key复制到yml文件中,他就自动形成了键值对的形式。
# properties文件中:
customer.brain.training=XXX
brain.training.report=XXX
train.path.source=XXX
# yml文件中的注入
customer:
brain:
training: @customer.brain.training@
brain:
training:
report: @brain.training.report@
train:
path:
source: @train.path.source@
// 项目中的使用,直接就是@value的正常形式
@Value("${customer.brain.training}")
private String CustomerBrainTrainingUrl;
来源:https://blog.csdn.net/u011672034/article/details/79130001


猜你喜欢
- 一、Java并发是什么?用学术定义来说就是并发:同一时间段,多个任务都在执行 (单位时间内不一定同时执行);简单来说就是,同一个时间段,让计
- SlidingMenu (侧滑菜单形式)在android开发过程中,经常用到,这次我们通过一个简单案例来仿写SlidingMenu 的大体功
- 最近看到一道有点意思的逻辑算法题,便着手实现一下。题目是要求打印 出N*N顺时针螺旋数组,规律如下:// 1 2 &
- 本文实例为大家分享了Android Studio实现补间动画的具体代码,供大家参考,具体内容如下补间动画是给出初始位置和结束位置,中间由系统
- using System.Drawing;using System.Drawing.Imaging;using System.IO;usin
- 本文实例讲述了C#找出字符串中第一个字母并大写的方法。分享给大家供大家参考,具体如下:class Program{ static
- 前言通过此篇文章,你将了解到:Flutter如何在Android上实现多窗口机制;Flutter与Android的事件机制和冲突解决;Flu
- 由于老师说如果拿MATLAB制作出游戏或者有趣的动画的话。。平时成绩可以拿满分于是。。开始尝试制作各种matlab小游戏最初通过Alex的贪
- 前言java有八个基本数据类型,每个都有对应的一个包装类,比如int对应的Integer。 Integer 是int的包装类型,数据类型是类
- 一. spring配置文件:application.xml<?xml version="1.0" encoding
- 最近发现线上监控有个SQL调用量很大,但是方法的调用量不是很大,查看接口实现,发现接口是做了缓存操作的,使用Spring cache缓存注解
- 本文实例讲述了Android编程实现ActionBar的home图标动画切换效果。分享给大家供大家参考,具体如下:Material Desi
- 一、前言SQLite是一个轻量级的、跨平台的、开源的嵌入式数据库引擎,也是一个关系型的的使用SQL语句的数据库引擎,读写效率高、资源消耗总量
- Android N 中推出了多窗口支持,项目要求适配多窗口模式,记录一下。1.生命周期:对于完全没有适配多窗口的APP来说,当启用多窗口模式
- 安卓的开发从布局开始。安卓的界面编写也是使用xml进行布局的,一般如果熟悉了html界面的布局,那么很容易就能够理解安卓有关的布局了,这里介
- 引言Java * 机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理
- 也许是本人不才,初识Maven时,被各种不明所以的教程搞得一头雾水,而在后来的使用中,我发现Maven大部分功能没有想象的那么困难。本片文章
- 这篇文章主要介绍了springboot 定时任务@Scheduled实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 引言在Broker中,事务消息的初始化是通过BrokerController.initialTransaction()方法执行的。priva
- Java类的加载说明Java类的编译代码都存在于它自己的独立文件中(class),该文件只在需要使用程序代码时才会被加载。类加载在创建类的第