NotifierConfig.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.yihu.admin.config;
  2. import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
  3. import com.yihu.admin.email.JKZLMailNotifier;
  4. import de.codecentric.boot.admin.config.NotifierConfiguration;
  5. import de.codecentric.boot.admin.notify.RemindingNotifier;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.boot.autoconfigure.AutoConfigureAfter;
  8. import org.springframework.boot.autoconfigure.AutoConfigureBefore;
  9. import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
  10. import org.springframework.boot.context.properties.ConfigurationProperties;
  11. import org.springframework.context.annotation.Bean;
  12. import org.springframework.context.annotation.Configuration;
  13. import org.springframework.context.annotation.Import;
  14. import org.springframework.context.annotation.Primary;
  15. import org.springframework.mail.MailSender;
  16. import java.util.concurrent.TimeUnit;
  17. /**
  18. * Created by chenweida on 2018/5/10 0010.
  19. */
  20. @Configuration
  21. @EnableApolloConfig
  22. @AutoConfigureAfter({MailSenderAutoConfiguration.class})
  23. @AutoConfigureBefore({NotifierConfiguration.MailNotifierConfiguration.class})
  24. @Import({MailSenderAutoConfiguration.class})
  25. public class NotifierConfig {
  26. @Autowired
  27. private MailSender mailSender;
  28. @Bean
  29. @Primary
  30. public RemindingNotifier remindingNotifier() {
  31. RemindingNotifier remindingNotifier = new RemindingNotifier(mailNotifier());
  32. //默认情况下,每5分钟发送一次提醒
  33. remindingNotifier.setReminderPeriod(TimeUnit.MINUTES.toMillis(5));
  34. return remindingNotifier;
  35. }
  36. @Bean("mailNotifier")
  37. @ConfigurationProperties("spring.boot.admin.notify.mail")
  38. public JKZLMailNotifier mailNotifier() {
  39. return new JKZLMailNotifier(mailSender);
  40. }
  41. }