Skip to content

Latest commit

 

History

History
80 lines (60 loc) · 2 KB

启动时执行.md

File metadata and controls

80 lines (60 loc) · 2 KB

启动时执行

InitializingBean

实现InitializingBean接口 重写public void afterPropertiesSet() throws Exception 方法,afterPropertiesSet中的内容将在spring初始化时执行

ApplicationRunner (Spring Boot)

@Component
public class Test implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) {

    }
}

PostConstruct 注解

被注解的方法将在类构造之后调用

@PostConstruct
public void init() {
    smt  = this._smt;
}

public @PostConstruct void someMethod(){}

spring配置文件

spring配置文件中添加

<!-- 启动时执行com.ruiger.common.quartz.ScheduleUtils.init -->
<bean id="scheduleUtils" class="com.ruiger.common.quartz.ScheduleUtils"  init-method="init"  lazy-init="false" />
public class ScheduleUtils{
    public static void init() {
        /*
        * STimetaskService sTimetaskService = (STimetaskService)
        * SpingInit.getApplicationContext().getBean("sTimetaskServiceImpl");
        */
        schedulerFactoryBean = (SchedulerFactoryBean) appContext.getBean(SchedulerFactoryBean.class);
        
        List<Schedule> ss = scheduleService.selectList(new EntityWrapper<Schedule>().gt("date", new Date()));
        for(Schedule s : ss) {
            addScheduleNotice(s);
        }
    }
}

ApplicationContextAware接口

@Component
public abstract class SchedulerUtils implements ApplicationContextAware {

    private static final Logger logger= LoggerFactory.getLogger(SchedulerUtils.class);

    private static ApplicationContext appContext;
    public static SchedulerFactoryBean schedulerFactoryBean = null;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if (appContext == null) {
            appContext = applicationContext;
        }
        schedulerFactoryBean = (SchedulerFactoryBean) appContext.getBean(SchedulerFactoryBean.class);

        logger.info("setApplicationContext");
    }
}