SpringBoot中添加监听器及创建线程的代码示例

 更新时间:2023年06月30日 11:16:28   作者: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 添加监听器及创建线程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑
    2021-06-06
  • java如何创建普通二叉树

    java如何创建普通二叉树

    这篇文章主要介绍了java如何创建普通二叉树的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 如何解决项目中java heap space的问题

    如何解决项目中java heap space的问题

    这篇文章主要介绍了如何解决项目中java heap space的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java调用商品详情API的项目实践

    Java调用商品详情API的项目实践

    在现代电子商务网站中,商品详情API是一个重要的组件,本文就来介绍一下Java调用商品详情API的项目实践,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Java IO三大模型(BIO/NIO/AIO)的使用总结

    Java IO三大模型(BIO/NIO/AIO)的使用总结

    相信很多Java开发刚接触IO模型时,都会被「BIO、NIO、AIO」「同步、异步、阻塞、非阻塞」这些概念绕晕,下面就来详细的介绍一下 IO三大模型的使用,感兴趣的可以了解一下
    2026-02-02
  • java实现Excel转换为图片

    java实现Excel转换为图片

    在实际开发过程中,经常会有这样的需求,需要将Excel表格或特定区域转换为图片,所以小编今天就来为大家介绍一下如何使用Java将Excel转化为图片吧
    2023-10-10
  • 关于Redis的缓存穿透问题

    关于Redis的缓存穿透问题

    这篇文章主要介绍了关于Redis的缓存穿透问题,缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库,需要的朋友可以参考下
    2023-08-08
  • Java线上CPU内存冲高问题排查解决步骤

    Java线上CPU内存冲高问题排查解决步骤

    这篇文章主要介绍了Java线上CPU内存冲高问题排查解决步骤的相关资料,Java程序在实际生产过程中经常遇到CPU或内存使用率高的问题,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • intellij idea配置外部dtd文件的方法

    intellij idea配置外部dtd文件的方法

    这篇文章主要介绍了intellij idea配置外部dtd文件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • Spring Task定时任务的配置和使用详解

    Spring Task定时任务的配置和使用详解

    本篇文章主要介绍了Spring Task定时任务的配置和使用详解,实例分析了Spring Task定时任务的配置和使用的技巧,非常具有实用价值,需要的朋友可以参考下
    2017-04-04

最新评论