为了账号安全,请及时绑定邮箱和手机立即绑定

在创建 Spring 应用程序上下文之前阅读 application.properties

在创建 Spring 应用程序上下文之前阅读 application.properties

慕丝7291255 2023-04-19 16:10:02
作为 Spring Boot 项目的一部分,我试图在创建 Spring ApplicationContext 之前读取 application.properties,如下所示,主类package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ApplicationContext;@SpringBootApplicationpublic class DemoApplication {    public static void main(String[] args) {        ConfigurationClass con = new ConfigurationClass();        con.readProperties();        ApplicationContext c = SpringApplication.run(DemoApplication.class, args);    }}配置类,package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import org.springframework.core.env.Environment;@Configuration@PropertySource("classpath:application.properties")public class ConfigurationClass {    private String value1;    private String value2;    @Autowired    private Environment env;    public void readProperties() {        value1 = env.getProperty("app.value1");        value2 = env.getProperty("app.value2");    }    public String getValue1() {        return value1;    }    public String getValue2() {        return value2;    }}我想从 application.properties 中获取一些基本值并进行一些配置。这段代码发生的事情是它抛出一个nullpointerexceptionsince envis null during value1 = env.getProperty("app.value1");。我在这里做错了什么?在创建 springapplication 上下文之前的这个时间点,我如何读取 application.properties 中的值?任何帮助,将不胜感激!
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

   @Configuration

    @PropertySource("classpath:application.properties")

    public class ConfigurationClass {

        @Value("${app.value1}")    

        private String value1;


        @Value("${app.value2}")    

        private String value2;


        public String getValue1() {

        return value1;

        }


        public String getValue2() {

        return value2;

       }

 }

然后调用它


 @SpringBootApplication

public class DemoApplication {


   public static void main(String[] args) {


    ApplicationContext c = SpringApplication.run(DemoApplication.class, args);

    ConfigurationClass  con = c.getBean(ConfigurationClass.class);

    System.out.println(con.getValue1());

    System.out.println(con.getValue2());

     }

}


查看完整回答
反对 回复 2023-04-19
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信