自动加载的两种办法

1、spring

配置init-method方法

例子如下

spring-xml------------------------------------------------

<context:annotation-config/>  

<bean /> 

java---------------------------------------------

package com.thread;

import java.util.HashMap;
import java.util.Map;

public class DataProcessor {
private static DataProcessor dataProcessor=null;
private DataProcessor(){}

public static DataProcessor getInstance(){
if(dataProcessor==null){
dataProcessor=new DataProcessor();
}
return dataProcessor;
}

/**数据转存线程数*/
private static int DATA_HANDLER_NUM = 4;
/**线程状态存储*/
public static Map<String, Boolean> threadStatusMap = new HashMap<String, Boolean>();

public void start(){
String name;
for(int i = 0 ; i < DATA_HANDLER_NUM; i++){
name = "dataHandlerRunnerThread " + i;
threadStatusMap.put(name, true);
new Thread(new DataHandlerRunner(threadStatusMap), name).start();
}
}

public void cleanUp(){
System.out.println("cleanUp");
}

}

2、servlet

web.xml   ------------------------------------------

<listener>
<listener-class>com.listener.MyServletContextListener</listener-class>
</listener>

Java 添加监听器------------------------------------

package com.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.thread.DataProcessor;

/**
* Application Lifecycle Listener implementation class MyServletContextListener
*
*/
public class MyServletContextListener implements ServletContextListener {

/**
* Default constructor.
*/
public MyServletContextListener() {
System.out.println("MyServletContextListener()");
}

/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent arg0) {

DataProcessor d=DataProcessor.getInstance();
d.start();
System.out.println(arg0.toString());
}

/**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("contextDestroyed()");
}

}