java项目中如何注入接口_Java Listener中Spring接口注入的使用

...importjava.util.ArrayList;importjava.util.List;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;importorg.apache.commons.lang3.StringUtils;importorg.apache.log4j.Logger;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importorg.springframework.util.CollectionUtils;importorg.springframework.web.context.WebApplicationContext;importorg.springframework.web.context.support.WebApplicationContextUtils;importcn.org.rapid_framework.page.Page;/*** Listener的方式在后台执行一线程

*

*@author**/

public class MyListener implementsServletContextListener {privateMyThread myThread;private Logger logger = Logger.getLogger(MyListener.class);public voidcontextDestroyed(ServletContextEvent e) {if (myThread != null &&myThread.isInterrupted()) {

myThread.interrupt();

}

}public voidcontextInitialized(ServletContextEvent e) {

String str= null;if (str == null && myThread == null) {

myThread= newMyThread(e);

myThread.start();//servlet 上下文初始化时启动 socket

}

}

}/*** 自定义一个 Class 线程类继承自线程类,重写 run() 方法,用于从后台获取并处理数据

*

*@authorChampion.Wong

**/

class MyThread extendsThread {private Logger logger = Logger.getLogger(MyThread.class);

ServletContextEvent _e;publicMyThread(ServletContextEvent e) {

_e=e;

}public voidrun() {while (!this.isInterrupted()) {//线程未中断执行循环

IGoldenPhoneManager phoneManager;

List phoneList = new ArrayList();

WebApplicationContext context=WebApplicationContextUtils.getRequiredWebApplicationContext(_e.getServletContext());

phoneManager= (IGoldenPhoneManager) context.getBean("igoldenPhoneManager");

System.out.println("开始获取所有电话记录...");int pageSize = 100;for (int i = 0; i < 46800; i++) {

GoldenPhoneQuery query= newGoldenPhoneQuery();

query.setPageNumber(i);

query.setPageSize(pageSize);

Page result=phoneManager.findPage(query);if (result != null) {

phoneList=result.getResult();

System.out.println("获取所有电话记录数目:" +result.getResult().size());if (!CollectionUtils.isEmpty(phoneList)) {for(GoldenPhone phoneModel : phoneList) {if(StringUtils.isBlank(phoneModel.getProvinces())) {

String provinces= newPhoneService().getPhoneArea(phoneModel.getTel());

phoneModel.setProvinces(provinces);

phoneManager.update(phoneModel);try{

Thread.sleep(3000);

System.out.println("休息3m钟...");

}catch(InterruptedException e1) {

e1.printStackTrace();

}

}

}

}

}

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值