package com.xxl.job.admin.core.conf; import com.xxl.job.admin.core.alarm.JobAlarmer; import com.xxl.job.admin.core.scheduler.XxlJobScheduler; import com.xxl.job.admin.dao.*; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.sql.DataSource; import java.util.Arrays; /** * xxl-job config * * @author xuxueli 2017-04-28 */ @Component public class XxlJobAdminConfig implements InitializingBean, DisposableBean { private static XxlJobAdminConfig adminConfig = null; public static XxlJobAdminConfig getAdminConfig() { return adminConfig; } // ---------------------- XxlJobScheduler ---------------------- private XxlJobScheduler xxlJobScheduler; @Override public void afterPropertiesSet() throws Exception { adminConfig = this; xxlJobScheduler = new XxlJobScheduler(); xxlJobScheduler.init(); } @Override public void destroy() throws Exception { xxlJobScheduler.destroy(); } // ---------------------- XxlJobScheduler ---------------------- // conf @Value("${xxl.job.i18n}") private String i18n; @Value("${xxl.job.accessToken}") private String accessToken; @Value("${spring.mail.from}") private String emailFrom; @Value("${xxl.job.triggerpool.fast.max}") private int triggerPoolFastMax; @Value("${xxl.job.triggerpool.slow.max}") private int triggerPoolSlowMax; @Value("${xxl.job.logretentiondays}") private int logretentiondays; // dao, service @Resource private XxlJobLogDao xxlJobLogDao; @Resource private XxlJobInfoDao xxlJobInfoDao; @Resource private XxlJobRegistryDao xxlJobRegistryDao; @Resource private XxlJobGroupDao xxlJobGroupDao; @Resource private XxlJobLogReportDao xxlJobLogReportDao; @Resource private JavaMailSender mailSender; @Resource private DataSource dataSource; @Resource private JobAlarmer jobAlarmer; public String getI18n() { if (!Arrays.asList("zh_CN", "zh_TC", "en").contains(i18n)) { return "zh_CN"; } return i18n; } public String getAccessToken() { return accessToken; } public String getEmailFrom() { return emailFrom; } public int getTriggerPoolFastMax() { if (triggerPoolFastMax < 200) { return 200; } return triggerPoolFastMax; } public int getTriggerPoolSlowMax() { if (triggerPoolSlowMax < 100) { return 100; } return triggerPoolSlowMax; } public int getLogretentiondays() { if (logretentiondays < 7) { return -1; // Limit greater than or equal to 7, otherwise close } return logretentiondays; } public XxlJobLogDao getXxlJobLogDao() { return xxlJobLogDao; } public XxlJobInfoDao getXxlJobInfoDao() { return xxlJobInfoDao; } public XxlJobRegistryDao getXxlJobRegistryDao() { return xxlJobRegistryDao; } public XxlJobGroupDao getXxlJobGroupDao() { return xxlJobGroupDao; } public XxlJobLogReportDao getXxlJobLogReportDao() { return xxlJobLogReportDao; } public JavaMailSender getMailSender() { return mailSender; } public DataSource getDataSource() { return dataSource; } public JobAlarmer getJobAlarmer() { return jobAlarmer; } }