在服务层中获取servlet上下文的最佳实践是什么?
最佳答案
有很多选择,所有这些都是错误的:
将其放入ThreadLocal
(即每个请求)并通过ThreadLocalServletContextHolder.get()
进行获取
将其作为参数传递给服务方法
它们是错误的,因为服务层不应该知道是servlet向其提供数据。明天可能会摇摆。
因此正确的方法是在servlet(或控制器)中收集所有必需的参数,并将它们作为参数传递给服务层。一个更糟糕的选择,但仍然不是那么糟糕,是获取属性的Map
并传递它。