plugin 式 根据Struts文献“A plugin is a configuration wrapper for a module-specific resource or service that needs to be notified about application startup and shutdown events“这句话的意思当你启动或者关闭struts时,Struts自动调用继承PlugIn接口的类.
也就是当我在一个WEB应用程序时要使用了Hibernate,一旦启动了我的WEB应用服务,我就要初始化Hibernate,因此执行我的第一个请求。反之,关闭我的的WEB应用服务,也就关闭(释放)了Hibernate。
我们执行这个Hibernate需要两个简单的步骤:
创造一个可执行PlugIn接口, 如下:public class HibernatePlugIn implements PlugIn{ private String configFile; // This method will be called at application shutdown time public void destroy() { System.out.println("Entering HibernatePlugIn.destroy()"); //Put hibernate cleanup code here System.out.println("Exiting HibernatePlugIn.destroy()"); } //This method will be called at application startup time public void init(ActionServlet actionServlet, ModuleConfig config) throws ServletException { System.out.println("Entering HibernatePlugIn.init()"); System.out.println("Value of init parameter " + getConfigFile()); System.out.println("Exiting HibernatePlugIn.init()"); } public String getConfigFile() {return name; } public void setConfigFile(String string) { configFile = string; } } 这个继承PlugIn接口的类要执行两个方法:init() and destroy(),init()方法是在用于服务启动时执行,destroy()方法是在关闭时执行,并且Struts允许你带参数,通过参数,你可以HibernatePlugIn类中在创建像javabean中的setter方法。 在struts-config.xml中增加PlugIn: <struts-config> ... <!-- Message Resources --> <message-resources parameter= "sample1.resources.ApplicationResources"/>
<!-- Declare your plugins --> <plug-in className="com.sample.util.HibernatePlugIn"> <set-property property="configFile" value="/hibernate.cfg.xml"/> </plug-in> </struts-config> 给你的继承PlugIn(HibernatePlugIn)类,赋予初始化参数,需要增加一个<set-property>元素,例如,例子中要传输的参数为"/hibernate.cfg.xml"。

|