springboot配置文件属性变量引用方式${}和@@用法及区别说明

目录
  • 配置文件属性变量引用${}和@@用法
    • ${}常用于pom.xml
    • @@方式常用于引用springboot非默认配置文件
  • 配置文件中的“@”问题
    • springboot配置文件中的${…}和@…@
    • 起因
    • 原因
    • 解决

配置文件属性变量引用${}和@@用法

${}和@@都是springboot引用属性变量的方式

具体区别与用法:

${}常用于pom.xml

和 src/main/resources/application.properties等默认配置文件的属性变量引用。

语法为:field_name=${field_value}

pom.xml示例:

<properties>
    <dubbo.version>2.7.0</dubbo.version>
</properties>
 
 <dependencies>
     <dependency>
         <groupId>org.apache.dubbo</groupId>
          <artifactId>dubbo</artifactId>
          <version>${dubbo.version}</version>
     </dependency>
 </dependencies>

application.properties示例:

#logback日志配置
log.config.address=classpath:config/logback-spring.xml
logging.config=${log.config.address}

@@方式常用于引用springboot非默认配置文件

(即其他配置文件)中的变量,是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以引用非默认配置文件时起不到引用变量的作用。

语法为:field_name=@field_value@

示例:

在实际项目开发中,为了在不同环境进行测试,我们会在src/main/resources目录下创建config文件夹,并在config中创建多个properties文件

例如:

local.properties, development.properties, production.properties,当我们在src/main/resources/application.properties文件中引用src/main/resources/config/local.properties的属性变量时,就要使用@@方式

#端口配置
server.port=@server.port.web@
 
#logback日志配置
logging.config=@logging.config@

配置文件中的“@”问题

springboot配置文件中的${…}和@…@

在springboot的配置文件中,即application.properties或application.yml

${}最好用于取springboot配置文件配置得值

@@引用其他文件(除springboot配置文件,像pom.xml)中定义的值, 用@ @

起因

从git拉取下来的代码,改一下数据库配置什么的开始运行。

报错:

found character '@' that cannot start any token. (Do not use @ for indentation)
 in 'reader', line 34, column 19:
            password: @spring.redis.password@

不应该阿,正常来说这里不应该报错。

原因

我猜测是有时候的编译没完全编译,看到编译后的文件里的内容并不是从pom.xml文件中读取的数据,显然是这块没有编译。

解决

打开侧边栏的maven,点击图中两个按钮刷新下项目。再次启动完美运行。还是不行就清理下缓存再刷新。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解SpringBoot读取配置文件的N种方法

    我们在项目开发中经常会用到配置信息,例如数据库连接的帐号.密码等,而为了方便维护,我们通常将这些信息放到配置文件中.在需要用到这些配置信息时,可以通过代码获取.下面我们看看Spring中有哪些获取配置信息的方法. PropertiesLoaderUtils读取 通过ClassPathResource加载配置文件资源,结合PropertiesLoaderUtils类读取,源码如下: ClassPathResource resource = new ClassPathResource("applic

  • springboot yml定义属性,下文中${} 引用说明

    比如: yml中自定义一个域名属性: mytest: domainName: https://www.jb51.net 上面定义了之后, 在此配置文件中,就可通过 ${} 来代替域名了 defaultHead: ${mytest.domainName}/head.jpeg 补充知识:Java读取.yaml配置文件(使用@Value("${prefix_name}")) 添加lombok依赖 [注]lombok是可选的,但是如果yaml配合lombok使用将非常的方便,代码也很简洁 co

  • 关于springboot 配置文件中属性变量引用方式@@解析

    这种属性应用方式是 field_name=@field_value@. 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用. @@方式可以引用springboot非默认配置文件(即其他配置文件)中的变量: springboot默认配置文件是 src/main/resources/application.properties 补充知识:springboot项目使用@Value注解获取配置文件中的配置信息 application

  • Springboot引用外部配置文件的方法步骤

    现在的项目越来越多的都是打包成jar运行尤其是springboot项目,这时候配置文件如果一直放在项目中,每次进行简单的修改时总会有些不方便,这里我们看下打包成jar之后,从外部配置文件中读取配置信息. 首先想到的是通过java代码读取外边某个路径下的文件,但是开始做之后发现好多问题.后来又找其它解决方案,正好搜到一种简单的解决方式: java -jar demo.jar --Dspring.config.location=myapplication.properties 这样就可以通过@val

  • springboot配置文件属性变量引用方式${}和@@用法及区别说明

    目录 配置文件属性变量引用${}和@@用法 ${}常用于pom.xml @@方式常用于引用springboot非默认配置文件 配置文件中的“@”问题 springboot配置文件中的${…}和@…@ 起因 原因 解决 配置文件属性变量引用${}和@@用法 ${}和@@都是springboot引用属性变量的方式 具体区别与用法: ${}常用于pom.xml 和 src/main/resources/application.properties等默认配置文件的属性变量引用. 语法为:field_na

  • php 多个变量指向同一个引用($b = &$a)用法分析

    本文实例讲述了php 多个变量指向同一个引用($b = &$a)用法.分享给大家供大家参考,具体如下: 引用是什么? 引用就是多个变量指向同一个内存区域地址.如我们经常用的实例一个类,就是内存中开辟了一个区域存储实例的类,实例赋值给变量就是让这个变量指向这个内存区域. 多个变量指向同一个引用有什么好处? 节约了内存空间,多个变量指向同一个内存地址,在调用的时候多个变量都是指向的同一个内存地址. 多个变量指向同一个引用的缺点 要注意使用安全,即是由于多个变量都是指向的同一个内存地址,其中一个变量更

  • SpringBoot+docker环境变量配置详解

    项目中遇到springBoot+docker需要配置不同环境变量的问题,做个简单的总结: 1.开发环境ide中启动项目 可以通过ide的环境变量参数配置,启动之后使用哪个配置,比如 这样就使用application-test.yml中的配置 2.通过gradle打包 可以通过-P参数来指定打包后的jar使用哪种环境来运行,比如 gradlew -Pprod bootWar 打包之后运行会使用prod中的配置:我的项目是jhipster生成出来的,现在需要添加test的环境配置,需求修改下项目的g

  • logback配置中变量和include的应用方式

    目录 logback配置中变量和include的应用 Example: 首先把配置内容抽取一个公共文件default.xml 然后基于公共文件定义各自的配置 最后在logback.xml中就可以include上面定义的文件 logback.xml导入(include)其他项目配置的logback.xml文件 1.其他项目存在的logback.xml文件需要下面这种形式的配置 ​ 2.其他项目的配置 logback配置中变量和include的应用 logback配置在实际应用中往往会遇到appen

  • springboot配置开发和测试环境并添加启动路径方式

    目录 springboot配置开发和测试环境并添加启动路径 SpringBoot配置文件(多环境配置dev.test.prod.启动器类的位置) 多环境配置 启动器类的位置 springboot配置开发和测试环境并添加启动路径 嗯,开发和测试环境要分离,这是一般共识(虽然我工作过的公司都没有这种分离),spring boot也可以按照配置文件的读取来做到这一点. 上图有三个application开头的配置文件,要达到能够读取外部配置文件的目的,我们需要引入一个依赖包,就是红色箭头所指的那个,把这

  • Springboot 配置SqlSessionFactory方式

    目录 Springboot 配置SqlSessionFactory Springboot SqlSessionFactory错误 Springboot 配置SqlSessionFactory Spring官方提供了比较完善的数据库配置,但是某些情况下需要自己手动加载(如:配置多数据源) 以下是我搜集并整理出来的一个configuration,不足之处或错误请大家提出并指正 package cn.xt.config; import org.mybatis.spring.SqlSessionFact

  • springboot配置多个数据源两种方式实现

    目录 第一种方式: 方法二 在我们的实际业务中可能会遇到:在一个项目里面读取多个数据库的数据来进行展示,spring对同时配置多个数据源是支持的. 本文中将展示两种方法来实现这个功能. springboot+mybatis 第一种方式: 在配置文件中配置多个数据源,然后通过配置类来获取数据源以及mapper相关的扫描配置 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId

  • Mac配置 maven以及环境变量设置方式

    目录 1. JDK安装及配置 2. maven下载 3. maven配置 4. maven库配置 5. idea maven配置 因为换了电脑,不熟悉Mac的操作流程,自己总结了一篇比较基础的maven教程 在开始之前,JDK必须装好(oracle需要账号,如果没有账号在百度上找一个jdk下载包也可以) 1. JDK安装及配置 1.在英文输入法的状态下,按键盘“Ctrl + 空格”组合键,调出Spotlight搜索,在这里可以快速启动终端,输入ter,然后回车,即可打开终端. 2.如果你是第一次

  • CentOS安装jdk的几种方法及配置环境变量方式

    目录 一.下载jdk 二.安装jdk 安装jdk(介绍三种方法) 方法一:利用yum源来安装jdk(此方法不需要配置环境变量) 方法二:用rpm安装jdk(可以使用man rpm命令查看rpm的帮助文档) 方法三:手动解压JDK的压缩包,然后设置环境变量 总结 一.下载jdk jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载jdk-8u152-linux-x

随机推荐