Aware相关接口BeanFactoryAware、BeanNameAware;例如BeanFactoryAware被实例化后,Spring容器将注入BeanFactory的实例。
https://www.cnblogs.com/yxysuanfa/p/7142566.html
ScheduledExecutorService提供4个方法
方法1:一个任务实例Runnable(参数),需要延时long(参数),时间单元TimeUnit(参数)。
举例说明:
private BeanFactory factory;
/**定单延迟异步通知*/
public boolean delayNoticeOrderToInstitution(MpiOrder mpiOrder) {
// 向线程池中加入工作线程
scheduledExecutorService.schedule(new ApsTradeSingleNoticeWorkThread((ApsTradeNoticeService) factory.getBean(this.getBeanName()),mpiOrder),
3, TimeUnit.SECONDS);
return true;
}
线程延迟3秒后运行。
==============================
public class ApsTradeSingleNoticeWorkThread extends Thread {
/** 定单通知服务*/
private ApsTradeNoticeService apsTradeNoticeService;
/**需要通知的定单*/
private MpiOrder mpiOrder;
private Logger logger = LoggerFactory.getLogger(ApsTradeSingleNoticeWorkThread.class);
public ApsTradeSingleNoticeWorkThread(ApsTradeNoticeService apsTradeNoticeService, MpiOrder mpiOrder) {
this.apsTradeNoticeService = apsTradeNoticeService;
this.mpiOrder=mpiOrder;
}
@Override
public void run() {
// logger.debug("启动定单延迟通知处理线程");
apsTradeNoticeService.notifyOrderToInstitution(mpiOrder);
}
}