如何在SpringBoot项目中获取配置文件的配置信息

  1. 如何获取 系统配置文件 application.yaml或者 application.properties 中的属性值
package cn.waimaolang.demo.controller.home;

import cn.waimaolang.demo.properties.AppProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Index
{
    @Value(value = "${book.name}")
    private String bookName;

    @GetMapping(path = "/")
    public String index(
        @RequestParam(defaultValue = "index",name = "in") String name,
        @RequestParam(defaultValue = "0") int id
    ){
        return bookName;
    }
}
总结: 获取系统配置文件 直接在 @Component  注解标注的类(@Service; @Controller... 等注解都属于一种@Component 组件注解) 中,使用
@Value(用于在一种属性上的) 注解 获取 属性值。 如上例代码所示,直接在控制器中将 application.properties 的属性book.name 的值赋给属性
bookName 。 

2.实际项目生产中,一般不推荐这种方式, 而是创建专门的属性类去获取 属性配置文件值。然后在其他层调用该属性类获取配置信息

1 .创建用于获取属性的包  com.package.demo.proerties [该包主要用于获取属性配置]
2. 在包下创建 属性类 UserProperties.java  专门用于读取 user.properties 配置信息 配置文件一般都储存在 classpath 目录下的config目录

package cn.waimaolang.demo.properties;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
@PropertySource(value = "classpath:config/user.properties") // 该注解不能用于读取yaml配置文件,获取classpath的 config目录下的哪一个配置文件
@ConfigurationProperties(prefix = "spring.fut") // 获取 某一个前缀的配置
public class UserProperties {
    // 获取某一个具体的配置值
    @Value("${username}")
    public String username;

   // 该方法用于给外部调用获取 对应的配置信息
    public String getUsername(){
        return username;
    }
}

3. 业务中获取配置信息
 // 将配置属性的Bean 注入到当前类
 @Autowired
    AppProperties appProperties;

    @GetMapping(path = "/")
    public String index( ) {
        return appProperties.getUsername();
    }
实际开发中 通常把 框架自带的配置文件放在 classpath 根目录。  其他业务相关的配置信息一般放在 classpath 下的config目录

你可能感兴趣的:(如何在SpringBoot项目中获取配置文件的配置信息)