spring boot admin 监控服务

重写spring boot的邮件通知服务

原理

查阅源码可以看到 邮件发送是调用了MailSender的实现类,在org.springframework.mail.javamail包中JavaMailSenderImpl实现了该接口,

@Configuration
@ConditionalOnBean(MailSender.class)
@AutoConfigureAfter({ MailSenderAutoConfiguration.class })
@AutoConfigureBefore({ NotifierListenerConfiguration.class,
    CompositeNotifierConfiguration.class })
public static class MailNotifierConfiguration {
    @Autowired
    private MailSender mailSender;

    @Bean
    @ConditionalOnMissingBean
    @ConfigurationProperties("spring.boot.admin.notify.mail")
    public MailNotifier mailNotifier() {
        return new MailNotifier(mailSender);
    }
}

继续查阅JavaMailSenderImpl的配置文件代码可以看到JavaMailSenderImpl的注册配置中启用了@ConditionalOnMissingBean(MailSender.class)这个注解,所以只要重新写代码实现MailSender接口就可以替代原有的邮件发送代码

实现

以下是具体的实现代码

Last updated

Was this helpful?