我有一个获取数据的servlet然后继续存在。这是一个粗略的片段:
@WebServlet("/ListenerServlet")
public class ListenerServlet extends HttpServlet {
@Inject
private PersistService service;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String toPersist = getDataFromRequest();
service.persist(toPersist);
}
我的问题
自己的方法:
private void doPersist(String toPersist) {
service.persist(toPersist);
}
答案 0 :(得分:0)
拥有自己的方法绝对没问题 - 只要它们也是线程安全的。注入PersistService是将后备存储放入servlet的好方法,但PersistService也是线程安全的仍然很重要。例如,如果您在该类中有一个静态EntityManager,那么不线程安全,没有一些额外的同步。但是如果你以线程安全的方式进行持久化,那么你应该没问题。
一般来说,你使用的模式是我多次使用过的模式并且效果很好。
您可以参考以下问题:
Regarding thread safety of servlet
Why Servlets are not thread Safe?
If my Servlet instance variable is of type StringBuffer, is it thread-safe?