线程类的run方法中如何获取spring 注解 bean

cjb_asmld 2014-05-29 07:18:56
@Autowired
private MessagerBeanServices messagerBeanService;
获取不到,求高人指点!
代码如下:
public class SendThread implements Runnable {

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

@Autowired
private MessagerBeanServices messagerBeanService;

private LQPP lqpp;

public SendThread(LQPP lqpp) {
this.lqpp = lqpp;
}

public void run() {
while (true) {
try {
Thread.sleep(10);
MessagerBean vo = Core.getMobileVo();
if (vo != null) {
LQPP_SUBMIT lqpp_submit = new LQPP_SUBMIT(lqpp, true, LQPP_SUBMIT.Msg_Fmt_GBK, "", vo.getReceiver(), vo.getContent().getBytes("GBK"));
lqpp.client.write(ByteBuffer.wrap( lqpp_submit.getMessage_LQPP()));
//保存短消息
try {
int SequenceId = DataUtil.ByteArrayToUInt(lqpp_submit.getMessageHeader_LQPP().getSequence_Id());
vo.setSequenceId(SequenceId + "");
messagerBeanService.insert(vo);
} catch (Exception e) {
logger.error("短信息保存异常::"+vo.getReceiver() + DateTools.dateToString(new Date()), e);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
...全文
460 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluerosehero 2014-05-29
  • 打赏
  • 举报
回复
里面设置属性,采用自动装配的方式交给你启动的线程
loveunittesting 2014-05-29
  • 打赏
  • 举报
回复
肯定能获得bean,肯定是你启动线程的时候没有使用这个sendThread 的bean。
cjb_asmld 2014-05-29
  • 打赏
  • 举报
回复
sendThread 交给spring 试过了 也拿不到。
thisisnew 2014-05-29
  • 打赏
  • 举报
回复
sendThread没有交给spring 管理啊,你要把sendThread定义到spring里面,在通过spring获取到实例应该就注入了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧