SpringBoot入门十 ,获取配置文件信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot入门十 ,获取配置文件信息相关的知识,希望对你有一定的参考价值。

SpringBoot获取配置文件的信息有很多,这里介绍比较常用的三种方式
 默认获取的都是application.properties文件中的信息

1.application.properties配置文件内容如下:
server.port=80
spring.mvc.view.prefix=/jsp/
spring.mvc.view.suffix=.jsp

#中文需要转换成为ASCII码,否则取值的时候是乱码
#张三
demo.userName=u5F20u4E09
demo.userAge=19
2.自定义文件config.properties配置文件内容如下:
#中文需要转换成为ASCII码,否则取值的时候是乱码
#张三
demo.user.userName=u5f20u4e09
#女
demo.user.userSex=u5973

一.使用@Value注解读取properties文件信息

代码如下:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * <h5>描述:使用@Value注解读取application.properties配置文件信息</h5>
 *  默认放在resources目录下
 */
@Component
public class TestService {
    @Value("${server.port}")
    public String port;
    @Value("${spring.mvc.view.prefix}")
    public String prefix;
    @Value("${spring.mvc.view.suffix}")
    public String suffix;
    @Value("${demo.userName}")
    public String userName;
}
使用方式,直接调用即可
    @Autowired
    TestService testService;

    @RequestMapping("readProperties")
    public String readProperties(){
        System.out.println("使用@Value注解读取properties文件信息");
        System.out.println("port=["+testService.port+"]");
        System.out.println("port=["+testService.prefix+"]");
        System.out.println("port=["+testService.suffix+"]");

        return "port=["+testService.port+"]<br/>" +
                "prefix=["+testService.prefix+"]<br/>" +
                "suffix=["+testService.suffix+"]<br/>" +
                "userName=["+testService.userName+"]";
    }

二.使用Environment读取properties文件信息

代码如下:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

/**
 * <h5>描述:使用Environment获取application.properties配置文件信息</h5>
 *  默认放在resources目录下
 */
@Component
public class TestTwoService {
    @Autowired
    Environment environment;

    /**
     * <h5>功能:使用Environment获取application.properties配置文件信息</h5>
     * 
     * @return 
     */
    public String getProperties(){
        String userName = environment.getProperty("demo.userName");
        String userAge = environment.getProperty("demo.userAge");

        return "userName=[" + userName + "],userAge=[" + userAge + "]";
    }
使用方式,直接使用即可

三.使用@ConfigurationProperties注解读取properties文件信息

代码如下:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * <h5>描述:使用@ConfigurationProperties注解获取指定配置文件信息</h5>
 *  文件的根目录在resources目录下
 * @author zhangpj  2018年12月10日 
 */
@Component
@ConfigurationProperties(prefix = "demo.user")      // 用于绑定属性,其中prefix表示所绑定的属性的前缀。
//@PropertySource(value = "config.txt") // 表示配置文件路径,只要内容格式一样,一样可以获取到信息
@PropertySource(value = "config.properties")    // 表示配置文件路径。
public class TestThreeService {
    private String userName;
    private String userSex;

    public String getUserName() {
        return userName;
    }
    public String getUserSex() {
        return userSex;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }
}
使用方式,直接调用对应的get方法即可

高级用法,请点击这里四种读取properties文件的方式

以上是关于SpringBoot入门十 ,获取配置文件信息的主要内容,如果未能解决你的问题,请参考以下文章

springboot 入门二- 读取配置信息一

SpringBoot入门十四,添加Activiti5.22工作流

SpringBoot入门二十一,全局异常处理

springboot入门_获取属性文件中的值

SpringBoot入门十一,启动后自动执行指定代码

SpringBoot入门十八,自定义注解的简单实现