現狀:在項目中,需要使用socket服務,來完成一個功能
目的:在啓動tomcat服務器的時候,同時啓動socket服務
共需要兩步:
第一步:寫一個類,實現ServletContextListener接口
import org.springframework.stereotype.Component;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
@Component
public class SocketServiceLoader implements ServletContextListener {
private SocketThread socketThread;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
if(null!=socketThread && !socketThread.isInterrupted())
{
socketThread.closeSocketServer();
socketThread.interrupt();
}
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
if (null == socketThread) {
//新建線程類
System.out.println("ppp");
socketThread = new SocketThread(null);
//啓動線程
socketThread.start();
}
}
}
第二步:在web.xml中配置監聽器
<listener>
<listener-class>
com.smh.sys.Utils.SocketServiceLoader
</listener-class>
</listener>
完成以上兩步,則啓動的時候,就能啓動socket服務,親測有效