Spring Boot NoOp后备Bean

时间:2018-08-23 06:20:35

标签: spring spring-boot annotations

以下代码按预期工作。

在上下文中有MailSender可用时,将创建一个EmailService。 如果没有MailSender可用,则会创建NoopEmailSender

据我所知,当Spring Boot具有相同的名称时,他们倾向于使用参数最多的方法。不幸的是,我在文档或JavaDoc的某处找不到该行为。

我的问题是我不确定代码是否仅由于“运气” /“随机”而工作,还是这种行为是故意的。

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.MailSender;

@Configuration
@Slf4j
public class MailConfiguration {

    @Bean
    public EmailSender emailSender(MailSender mailSender) {
        return new EmailService(mailSender);
    }

    @Bean
    public EmailSender emailSender() {
        log.info("Email sending is not configured.");
        return new NoopEmailSender();
    }
}

感谢您的帮助!

0 个答案:

没有答案