首页 > 解决方案 > 春季启动 - 自动装配失败

问题描述

我正在尝试从application.properties文件广告中获取一些属性,我的代码如下:

主要应用类:

package it.mysite;

@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {

    public static void main(String[] args){
        ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);

        System.out.println("*****");
        for (String name : context.getBeanDefinitionNames()) {
            System.out.println(name);
        }
        System.out.println("*****");
        new MySendService().sendReport();
    }
}

我的服务等级:

package it.mysite.service;

@Service
public class MySendService {

    @Value("${mail.fc.to}")
    private String[] to;

    @Value("${mail.fc.subject}")
    private String subject;

    @Autowired ReportService reportEmailService;

    @Autowired MailProperties mailProperties;

    public void sendReport(){
        if(mailProperties.getTo().length > 0) {
    }
}

我获取属性的类:

package it.mysite.properties;

@Component
@ConfigurationProperties("mail.fc")
public class MailProperties {

    private String[] to;

    public String[] getTo(){
        return to;
    }
}

配置文件:

# Email config
mail.fc.to=my@mail.com
mail.fc.subject=My subject

所有@Autowired属性都是null,还有@Value属性(我也尝试以这种方式获取它们)。当我打印我的上下文时,我可以在 bean 列表中看到这些类,并且我知道我的包层次结构是正确的,那么问题可能是什么?

编辑 好的,我从重复的问题中得到了建议,我改变了我的主类代码如下: 主应用程序类:

package it.mysite;

@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {

    @Autowired MySendService mySendService;

    public static void main(String[] args){
        ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);

        System.out.println("*****");
        for (String name : context.getBeanDefinitionNames()) {
            System.out.println(name);
        }
        System.out.println("*****");
        new MailSenderApplication().boot();
    }

    private void boot(){
        mySendService.sendReport();
    }
}

但我得到了同样的错误。不是这个建议吗?

标签: springspring-bootpropertiesautowired

解决方案


推荐阅读