springboot java应用程序类中的属性值加载
我试图在java应用程序类中加载属性文件值,但它没有加载,因为Sysout正在打印null。 我的代码中缺少的任何内容。 启动Spring容器时,可以看到日志中加载的属性文件的值,如下所示:
015-12-24 22:36:08.313 INFO 22224 --- [ main] com.ge.predix.solsvc.boot.Application : propertySource=applicationConfig: [file:./config/application.properties] values={logging.level.org.springframework=INFO, server.port=9092, logging.level.root=INFO}class=class org.springframework.core.env.PropertiesPropertySource
2015-12-24 22:36:08.313 INFO 22224 --- [ main] com.ge.predix.solsvc.boot.Application : propertySource=class path resource [application-default.properties] values={**predix.oauth.clientId=admin:cargo_beta**, spring.profiles.active=local, predix.oauth.restHost=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}class=class org.springframework.core.io.support.ResourcePropertySource
@PropertySources({
@PropertySource("classpath:application-default.properties")
})
@SpringBootApplication
@Configuration
public class Application
{
private static final Logger log = LoggerFactory.getLogger(Application.class);
@Value("${predix.oauth.clientId}")
private static String loc;
public static void main(String[] args)
{
SpringApplication springApplication = new SpringApplication(Application.class);
ApplicationContext ctx = springApplication.run(args);
System.out.println("#############################################" +loc);
}
}
# 1 楼答案
简而言之,spring不会向静态成员中注入值:Spring: How to inject a value to static field?