springboot读取properties文件变量及pom文件中变量

mac2024-06-25  56

springboot读取properties文件变量及pom文件中变量

ToolConfig.java文件内容

package com.xzc.one.common.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; /** * ToolConfig * * @author xzcong * @create 2019-10-28 11:20 **/ @Data @Component @ConfigurationProperties(prefix = "cnf") @PropertySource(value = "ToolConfig.properties") public class ToolConfig { private String redisHost; //@Value("${cnf.version}") //private String version; }

springboot读取properties的文件有两种方式:

通过@Value("${cnf.version}")的方式获取,如上面被注释的代码,简单易用。通过@PropertySource注解完成,value = "ToolConfig.properties"就是读取的文件名,ToolConfig.properties是放在resources资源的路径下,否则springboot将无法找到文件。@ConfigurationProperties注解是标注变量的配置的相关信息,prefix = "cnf"的意思是默认查找前缀为cnf的变量。获取下面的代码cnf.redisHost的值,可以通过类的注解配置获取,当然也可以通过@Value("${cnf.redisHost}")简单的方式获取。 两种方式都可以,但我建议普通变量用@Value("${cnf.version}")方式获取,与项目配置有关的通过@ConfigurationProperties@PropertySource类注解实现,让spring容器帮我们托管实现。

ToolConfig.properties文件内容

cnf.version=1.0.0 cnf.redisHost=@cnf.redisHost@

springboot无法直接读取pom.xml文件中的变量,需要通过properties文件变量做为沟通桥梁。

要在pom.xml文件中定义变量并赋值,如下面的代码<properties><cnf.redisHost>192.168.0.6</cnf.redisHost></properties>在properties文件中读取变量值,如上图cnf.redisHost=@cnf.redisHost@通过java代码通过类配置注解@ConfigurationProperties@PropertySource获取即可。(也可用@Value获取)

pom.xml文件内容

<properties> <cnf.redisHost>192.168.0.6</cnf.redisHost> </properties>
最新回复(0)