springboot 配置注入,环境变量读取

前提

配置文件一般是值resources目录下的application.properties或application.yml,其中保存着配置信息

代码中实现配置注入的方法

  1. 使用@Value注解 @Value("${test.msg}")
@RestController
public class WebController {

    @Value("${test.msg}")
    private String msg;

    @RequestMapping(value = "index", method = RequestMethod.GET)
    public String index() {
        return "The Way 1 : " +msg;
    }
}

  1. 使用spring boot的Environment对象 env.getProperty("test.msg")
@RestController
public class WebController {

    @Autowired
    private Environment env;
 
    @RequestMapping(value = "index2", method = RequestMethod.GET)
    public String index2() {
        return "The Way 2 : " + env.getProperty("test.msg");
    }
}

  1. 使用java bean 注入

@Component
@ConfigurationProperties(prefix="people")
@Data
public class People {
    private String name;
    private Integer age;
}

//然后在需要使用的地方使用@Autowired注入
@Autowired
private People me;

  1. 为了不破坏核心文件的原生态,但又需要有自定义的配置信息存在,一般情况下会选择自定义配置文件来放这些自定义信息
    这里在resources/config目录下创建配置文件my-web.properties
    使用@Component和 @ConfigurationProperties来转换为java bean对象注入
@ConfigurationProperties(locations = "classpath:config/my-web.properties", prefix = "web")
@Component
@Data
public class MyWebConfig {
    private String name;
    private String version;
    private String author;
}

在需要使用的地方使用@Autowired注解注入、

5.在docker环境中,application.properties或application.yml读取环境变量
name: ${M2_HOME:abc} #首先取环境变量M2_HOME,如果环境变量中没有,就取abc这个固定值

posted @ 2023-02-21 17:54  xiaoyu_jane  阅读(2679)  评论(0编辑  收藏  举报