SpringBoot中添加监听器及创建线程的代码示例
作者:tanzongbiao
这篇文章主要介绍了SpringBoot中如何添加监听器及创建线程,文中有详细的代码示例,具有一定的参考价值,需要的朋友可以参考下
Application主程序上添加注解
@ServletComponentScan(basePackages= {"com.qyj.listeners"})// 添加监听器所在的包名
监听程序
package com.qyj.listeners; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.StringRedisTemplate; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; @WebListener public class AudioPlayListener implements ServletContextListener { @Autowired private StringRedisTemplate redisTemplate; @Value("${qyj.fee-type}") private String feeType; // 当后台被初始化,即发生了tomcat启动了事件,固定用法 @Override public void contextInitialized(ServletContextEvent event) { // 你要做的事儿,写在这里 System.out.println("AudioPlay is running(语音播报-循环监听中)..."); // 新建线程while循环处理语音播报 new Thread(new AudioPlayThread(redisTemplate, feeType)).start(); } // 当后台被销毁,即发生了tomcat关闭了事件,固定用法 @Override public void contextDestroyed(ServletContextEvent event) { System.out.println("后台被销毁"); } }
新建线程
package com.qyj.listeners; import com.qyj.constant.RedisConstant; import com.qyj.utils.AudioPlayUtil; import org.springframework.data.redis.core.StringRedisTemplate; import java.util.concurrent.TimeUnit; public class AudioPlayThread implements Runnable{ // 因为线程是new出来的 所以此处不能再通过依赖注入获取信息了 private String feeType; private StringRedisTemplate redisTemplate; public AudioPlayThread(StringRedisTemplate redisTemplate, String feeType) { this.redisTemplate = redisTemplate; this.feeType = feeType; } @Override public void run() { while(true){ try { System.out.println("这是继承Thread类创建的线程"); } catch (Exception e) { e.printStackTrace(); } } } }
到此这篇关于SpringBoot中添加监听器及创建线程的代码示例的文章就介绍到这了,更多相关SpringBoot 添加监听器及创建线程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!