Java Spring boot autowired类不在常规类中实例化

Java Spring boot autowired类不在常规类中实例化,java,spring,spring-boot,configuration,autowired,Java,Spring,Spring Boot,Configuration,Autowired,因此,我有一个外部配置类,它使用global.properties文件中的属性注入变量 我在Spring boot主类中实例化和访问该对象没有问题,但我的项目中的任何其他类都会使外部配置对象为null 这就是我的外部配置类的样子 @Component @PropertySource("classpath:global.properties") public class ExternalConfig { @Value("${developerName}") private String deve

因此,我有一个外部配置类,它使用global.properties文件中的属性注入变量

我在Spring boot主类中实例化和访问该对象没有问题,但我的项目中的任何其他类都会使外部配置对象为null

这就是我的外部配置类的样子

@Component
@PropertySource("classpath:global.properties")
public class ExternalConfig {

@Value("${developerName}")
private String developerName;

//getters and setters
public String getDeveloperName() {
    return developerName;
}

public void setDeveloperName(String developerName) {
    this.developerName = developerName;
}

}
这是我的Spring boot主课程

@SpringBootApplication
public class SpringBootMain implements CommandLineRunner {

@Autowired
private ExternalConfig externalConfig;

@Bean
ResourceConfig resourceConfig() {
    return new ResourceConfig().registerClasses(Version1Api.class, Paypal.class);
}

public static void main(String[] args) {
    SpringApplication.run(SpringBootMain.class);
}


@Override
public void run(String... args) throws Exception {
    // TODO Auto-generated method stub
    System.out.println("RUN METHOD");
    System.out.println(externalConfig.getDeveloperName());

}  

}
但是,如果我尝试将此外部配置类添加到另一个类(如HTTP类)

@Component
public class Http {
Http() {

}
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(Version1Api.class);
@Autowired
private static ExternalConfig externalConfig;

public static void main(String[] args) throws IOException, URISyntaxException {
    logger.info("HTTP Class");
    logger.info(externalConfig.getDeveloperName());
}
对象总是空的,并给我一个错误。我做错了什么?我应该以不同的方式实现我的目标吗

或者我应该以不同的方式实现我的HTTP类


非常感谢您的帮助

您可以通过从属性中删除@Autowired并使用setter来实现这一点

@Autowired
public void setExternalConfig(ExternalConfig externalConfig){
    Http.externalConfig = externalConfig;
}

您无法自动关联静态字段,也无法在thge
main
方法中使用它。