GWT中的“Servlet”(服务器端)初始化代码
我怎样才能在GWT应用程序的服务器端进行一次初始化?
我可能会想到很像HttpServlet
在哪里可以重写init()
,但旧的习惯很久就会失去;)
我想要做的是:
-
加载一堆属性
-
build立到数据库的连接
你可以添加像在一个ServletContextListener
注释中提到的。
public class ServerConfig implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { // Do stuff on startup. } public void contextDestroyed(ServletContextEvent event) { // Do stuff on shutdown. } }
现在把新的类放在服务器端,你也可以在你的web.xml文件中注册Listener:
<listener> <listener-class>path.to.class.ServerConfig</listener-class> </listener>
加载一堆属性?
注册ServletContextListener以在服务器启动时加载Init参数。
加载属性并使其对静态的其他类可见。
我已经发布了一个示例代码在servlet外部检索Init参数
build立到数据库的连接?
使用JNDI来绑定数据源。
使用Connection Utility类来获取连接,并尽快closures连接。
这里是示例代码。
import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import com.woodmac.datavisualizer.shared.DVConstants; public class ConnectionUtil { private DataSource dataSource; private static ConnectionUtil instance = new ConnectionUtil(); private ConnectionUtil() { try { Context initContext = new InitialContext(); dataSource = (DataSource) initContext.lookup(JNDI_LOOKUP_NAME); } catch (NamingException e) { e.printStackTrace(); } } public static ConnectionUtil getInstance() { return instance; } public Connection getConnection() throws SQLException { Connection connection = dataSource.getConnection(); return connection; } public void close(Connection connection) throws SQLException { if (connection != null && !connection.isClosed()) { connection.close(); } connection = null; } }
如果您JBOSS in standalone mode
使用JBOSS in standalone mode
。 然后在standalone.xml
做一些条目来创build一个数据源。 只需根据您的数据库连接(如connection-url
, user-name
和password
更新它的一些值password
。
在这种情况下,JNDI_LOOKUP_NAME将是java:jboss/datasources/oracle
<datasource jta="true" jndi-name="java:jboss/datasources/oracle" pool-name="OracleDS" enabled="true" use-java-context="true" use-ccm="true"> <connection-url>jdbc:oracle:thin:@ipaddress:1521/sid</connection-url> <driver>oracle</driver> <new-connection-sql>select * from dual</new-connection-sql> <pool> <min-pool-size>20</min-pool-size> <max-pool-size>50</max-pool-size> <prefill>true</prefill> </pool> <security> <user-name>username</user-name> <password>password</password> </security> <validation> <check-valid-connection-sql>select * from dual</check-valid-connection-sql> <background-validation>true</background-validation> </validation> <timeout> <blocking-timeout-millis>30000</blocking-timeout-millis> <idle-timeout-minutes>1</idle-timeout-minutes> <use-try-lock>60</use-try-lock> <allocation-retry>1</allocation-retry> </timeout> </datasource>