1

init我的大多数(所有)servlet 中的方法都是相似的。主要是初始化一个DataSource

我正在考虑创建一个BaseServlet具有受保护DataSourceinit实现的方法以及所有其他 servlet 扩展它BaseServlet

我应该警惕的任何陷阱?

4

2 回答 2

1

If you just need initialize the Database related stuff, you can put that into ServletContext, I am not a fun of so many class inheritance.

nowadays, seems we don't just start from servlet, why not choose a framework?

于 2012-10-18T12:18:15.087 回答
1

在当前的方法中:

  1. 每个扩展的 ServletBaseServlet都将创建自己的数据源,因为该init()方法将被多次调用。
  2. 我认为这不是您想要完成的,您正在寻找一个用于所有 Servlet 的单一数据源。

假设上述情况属实,我建议以下

  1. 将您的数据源包装在一个单例类中。这将确保数据源只初始化一次。使用急切的初始化来确保数据源在类加载本身时被初始化
  2. 使用此类获取 servlet 类中的数据源/连接。
于 2012-10-18T12:19:11.947 回答