1.部署完启动线程
在web.xml中添加listener
<listener>
<listener-class>com.hzlinge.util.MyListener</listener-class>
</listener>
在MyListener contextInitialized方法中添加线程启动方法
package com.hzlinge.util;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.hzlinge.journal.thread.MyThread;
public class MyListener implements ServletContextListener{
public void contextDestroyed(ServletContextEvent arg0) {
}
public void contextInitialized(ServletContextEvent arg0) {
MyThread myThread = new MyThread();
myThread.start();
}
}
线程
package com.hzlinge.journal.thread;
public class MyThread extends Thread {
public void run() {
System.out.println("线程已经启动");
int i = 1;
boolean keeping = true;
while(keeping) {
System.out.println("跑了"+i+"次");
i++;
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
2.在线程中添加service层
在spring-mybatis.xml中加入
<bean id="storyService" class="com.hzlinge.journal.service.StoryService"></bean>
<bean id="myThread" class="com.hzlinge.journal.thread.MyThread">
<property name="storyService" ref="storyService"></property>
</bean>
storyService 是myThread中需要用到的service
package com.hzlinge.journal.thread;
import java.util.ArrayList;
import com.hzlinge.journal.pojo.Story;
import com.hzlinge.journal.service.StoryService;
public class MyThread extends Thread {
private StoryService storyService;
public StoryService getStoryService() {
return storyService;
}
public void setStoryService(StoryService storyService) {
this.storyService = storyService;
}
public void run() {
boolean keeping = true;
while(keeping) {
ArrayList<Story> list = getStoryService().getPublicStoryList();
System.out.println("一共有"+list.size()+"个故事");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package com.hzlinge.util;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hzlinge.journal.thread.MyThread;
public class MyListener implements ServletContextListener{
public void contextDestroyed(ServletContextEvent arg0) {
}
public void contextInitialized(ServletContextEvent arg0) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-mybatis.xml");
MyThread myThread = (MyThread) context.getBean("myThread");
myThread.start();
}
}