ThreadLocal Modo

  • 目的:单纯为了每一份线程有自己单独的线程变量。
  • 数据基础类
public abstract class DataDealBase  {

    protected ThreadLocal inputDto = new ThreadLocal<>();
    
    /**
     * 根据入参查询SSP线索信息,保存在全局变量中(自定义)
     * @param inputDto
     * @throws BzException 
     * @author YixinCapital -- wangdianxiang
     *         2016年12月26日 下午7:12:47
     */
    protected abstract void getData() throws BzException;
    
    /**
     *  转换信息
     *  eg:男(M)-> (01)
     * @author YixinCapital -- wangdianxiang
     *         2016年12月5日 下午3:23:49
     */
    protected abstract void assembler() throws BzException;
    
    /**
     *  数据入库
     * @author YixinCapital -- wangdianxiang
     *         2016年12月5日 下午3:33:17
     */
    protected abstract InvokeResult download() throws BzException;
    
    public InvokeResult doIt(T inputDto){
        this.inputDto.set(inputDto);
        this.getData();
        this.assembler();
        return this.download();
    }

}
  • 实现子类
@Service("...")
public class serviceAAA extends DataDealBase  {
    @Override
    protected void getData() throws BzException {...}
    }
    @Override
    protected void assembler() throws BzException {...}
    }
    @Override
    protected void download() throws BzException {...}
    }
}

@Service("...")

.......
  • 线程调用
启动线程
...
serviceAAA.doIt();
...

你可能感兴趣的:(ThreadLocal Modo)