gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:32:46 24 4
gpt4 key购买 nike

作为 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;

@SpringBootApplication
public 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 中获取一些基本值并进行一些配置。此代码会引发 nullpointerException,因为在 value1 = env.getProperty("app.value1"); 期间 env 为 null 。

我在这里做错了什么?

在创建 springapplication 上下文之前,此时如何读取 application.properties 中的值?

如有任何帮助,我们将不胜感激!

最佳答案

    @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());
}
}

关于java - 创建 Spring 应用程序上下文之前阅读 application.properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57205701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com