当前位置:首页 > Java技术 > 正文内容

SpringBoot中的application.properties引用pom.xml中变量

canca3年前 (2022-07-05)Java技术902

在SpringBoot的默认配置文件application.properties中引用pom.xml中的变量

在application.properties中我们引用了hostname这个变量,其中@hostname@代表的是pom.xml中的一个变量

server.port=8081

eureka.instance.hostname=127.0.0.1
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://@hostname@:${server.port}/eureka/

在pom.xml中

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-clound.version>Greenwich.SR1</spring-clound.version>
        <eureka-server.version>2.1.1.RELEASE</eureka-server.version>
        <spring-boot.version>2.1.3.RELEASE</spring-boot.version>
        <hostname>127.0.0.1</hostname>
    </properties>

其中hostname就是我们在application.properties中引用的变量。

按照上述方式就可以访问在pom.xml中变量了。。

另外说明的是:

由于${ }这种方式会被maven处理。如果你pom继承了spring-boot-starter-parent,Spring Boot已经将maven-resources-plugins默认的 ${}方式改为了@@方式,如@name@,而你要用的是 ${变量名}这种方式来获取变量。

所以如何解决这种情况呢?

先说明下这种情况的使用方式:

比如我的application.properties如下:

server.port=8081

eureka.instance.hostname=127.0.0.1
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${hostname}:${server.port}/eureka/

注意其中原来的@hostname@我已经改成了${hostname}这种方式。

如果项目不能运行,那么需要重新mvn -clean然后再mvn -compile。

如果按照上面这种方式如何获取呢?
那么在pom.xml文件添加一个插件(plugin),原来的变量声明还是不变:如下

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-resources-plugin</artifactId>
   <configuration>
       <encoding>UTF-8</encoding>
       <useDefaultDelimiters>true</useDefaultDelimiters>
   </configuration>
</plugin>

如果按照上面这种配置之后,那么在application.properties中使用${变量名}和@变量名@这两种方式都可以获取到。。。

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/809.html

分享给朋友:

“SpringBoot中的application.properties引用pom.xml中变量” 的相关文章

Socket与ServerSocket的问题

//服务器端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSock...

Java语言的反射机制

    由于项目的需要,在项目中要实现即插即用的方式,也就是说可以动态地加载包,不用设置CLASSPATH路径。当项目发布时,不可能要用户来设置环境变量吧!因此,就要用到JAVA的反射机制了。昨天,我是在研究JAVA的JNI技术。由于没有时间,所以过几天才写JNI。今天...

JSP与Servlet的对应关系

以前在QQzone写下的文章现在贴到这里来了... 最近比较忙啊!现在抽身写一篇文章。是关于JSP与Servlet的对应关系的。希望对大家有所帮助。其实我也是刚刚学的......-------Servlet--------------JSP----------1.ServletContext&nbs...

IM技术(1)

    做项目了,NetCL今天开工了,在这些日子里,我会将自己研究的内容写下来。做个记录,以下是我在网上搜到的。关于管理用户状态的解决方案,当然,我都有一个方案。不过对客户端的任务有点重吧,我方法是客户端从服务器端获到一个用户在线状态后,接着就与服务器无关了。好友离线...

JAVA内部类终极实例

最近心情不好,不想说太多东西了!电脑坏了,我现在又病了. class ClassFactory{ private final static String userName = "Hello,My name is CAnca."; public static Thread in =...

字符,字节和编码

字符,字节和编码

转自:http://www.regexlab.com/zh/encoding.htm------------------------------------------------------------- 级别:中级 摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。