子线程获主线程HttpServletRequest对象
需求
需求:太平xxx异步执行流转逻辑。
简述:类似A调用B的业务,无需等待B执行结果,调用后立即返回。
坑:原有业务使用了HttpServletRequest对象,捆绑很深明显不适合修改代码。
解决问题
利用ServletRequestAttributes
比如网上很多人说的这个【请出门左转】:
该思路解决的是主线程存活情况下,不传递request参数而获取该对象。类型session缓存的模式,只要能拿到session的地方都能拿到session中存的值。
继承HttpServletRequest对象
继承这个需要实现所有的方法
继承HttpServletRequestWrapper
实现几个常见方法即可。
getSession、removeParameter、getSession、getParameter等按需实现即可。主要是需要把原reuest的参数拿到存放到继承后的类中即可
//我这里介于只需要getParameter、getSession
public class SystemRequest extends HttpServletRequestWrapper {
//请求参数
private Map params = new HashMap();
//session参数
private