NutzCN Logo
问答 wendal兽,在多线程里面Ioc mvIoc = Mvcs.getIoc() 为空
发布于 3161天前 作者 qq_710cab78 2816 次浏览 复制 上一个帖子 下一个帖子
标签:

我定义了类
public class CostOrderNotifyRunnable implements Runnable {
private static final Log log = Logs.get();
private Order order;

public CostOrderNotifyRunnable(Order order){
    this.order = order;
}

@Override
public void run() {
    Ioc ioc = new NutIoc(new JsonLoader("conf/core.js"));
    Dao dao = ioc.get(com.okideaad.erp.OkErpDao.class, "dao");
    try{
         Ioc mvIoc = Mvcs.getIoc();
         QQModule qqModule = mvIoc.get(QQModule.class);
         //发现这里拿到的mvIoc为空
       }
    }catch (Throwable e) {
       log.error(Utils.exceptionStackToString(e));
    } 
}

QQModule的类
@At("/module/QQ")
@IocBean(name="qqModule",fields={"dao", "config"},create = "init")
public class QQModule extends EntityService{

我发现在其他module里面是可以像下面的写法是可以拿到qqModule的,即mvIoc不为空。
Ioc mvIoc = Mvcs.getIoc();
QQModule qqModule = mvIoc.get(QQModule.class);

难道是多线程的类CostOrderNotifyRunnable要实现或者继承其他类吗?

2 回复

因为不在http请求的左右域内,改成

Ioc ioc = Mvcs.ctx().getDefaultIoc();

可以了,谢谢兽

添加回复
请先登陆
回到顶部