web前端开发师就业班,css怎么让文字上下居中

背景

以SpringCloud构建的微服务系统为例,使用前后端分离的架构,每个系统都会提供一些通用的请求参数,例如移动端的系统版本信息、IMEI信息,Web端的IP信息,浏览器版本信息等,这些参数可能放在header里,也可以放在参数里,如果这些参数需要在每个方法内声明定义,一来工作量太大,二是这些通用参数与业务接口方法耦合过紧,本身就是一个不好的设计。

这个问题该如何优雅地解决呢?

最佳实践

实现思路
  • 利用SpringMVC提供拦截器,对匹配的请求,抽取通用的header信息(假设通用字段全部放在header里)
  • 将每个请求的信息单独隔离开,互不干扰。
  • Controller层使用时,可以将在该请求线程(http线程)里将通用的header信息提取出来使用。
  • 请求线程完成时,相应的header头信息对象需要回收销毁。
实现方式
  • SpringMVA提供的HandlerInterceptorAdapter可以拿来使用,继承实现即可。
  • 使用ThreadLocal记录每个请求的信息,ThreadLocal有隔离线程变量的作用。
HandlerInterceptorAdapter的源码实现及注释
public abstract class HandlerInterceptorAdapter implements AsyncHandlerInterceptor {

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
        // 在业务接口方法处理之前被调用,可以在这里对通用的header信息进行提取
		return true;
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			@Nullable ModelAndView modelAndView) throws Exception {
		// 这个方法在业务接口方法执行完成后,生成SpringMVC ModelAndView之前被调用
		// 今天这个案例我们不用此方法,故可以不实现。
	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
			@Nullable Exception ex) throws Exception {
		// 这个方法在DispatcherServlet完全处理完成后被调用,可以在这里对ThreadLocal的内容进行释放
	}

	@Override
	public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response,
			Object handler) throws Exception {
		// 这个方法用来处理异步主动,但也会先行调用preHandle,然后执行此
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值