2.1. Using Plug-ins for Application Initialization
Problem
You want to load initial data into the application context when your application starts up.
Solution
Create a class that implements the
org.apache.struts.action.PlugIn interface and
specify the plug-in element in the
struts-config.xml. The following XML fragment
shows a plug-in declaration and a nested
set-property element for setting a custom
property:
<plug-in className="com.oreilly.strutsckbk.CustomPlugin" >
<set-property property="customData"
value="Hello from the plugin"/>
</plug-in>Discussion
Struts
provides a PlugIn
interface you can use to create custom services that are initialized
on application startup. The Java source for the
PlugIn interface is shown in Example 2-1. (For clarity, the JavaDoc documentation has
been removed from this listing.)
Example 2-1. The Struts PlugIn interface
package org.apache.struts.action;
import javax.servlet.ServletException;
import org.apache.struts.config.ModuleConfig;
public interface PlugIn {
public void destroy( );
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException;
}To implement a
plug-in,
you only need to implement this interface and declare the plug-in
implementation in the
struts-config.xml
file. The two methods that must be implemented, init() and destroy( ), are called during the
lifecycle of the plug-in. Struts calls the init( )
method after it instantiates the plug-in on startup of the
ActionServlet. Struts calls the destroy() method when ...