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