Spring Bean 在自己的线程中运行

2024-02-21

在我的 Web 应用程序中,我尝试使用 Java SDK7 WatchService 创建目录轮询 bean。我想要实现的是在它自己的线程中运行这个bean,这样它就不会阻塞应用程序。就像是:

  <bean id="directoryPoller" class="org...MyDirectoryPoller" scope="thread"/>

恐怕你必须使用 Spring 手动创建这个线程:

<bean id="pollThread" class="java.lang.Thread" init-method="start" destroy-method="interrupt">
    <constructor-arg ref="watchServiceRunnableWrapper"/>
</bean>

<bean id="watchServiceRunnableWrapper" class="WatchServiceRunnableWrapper">
    <constructor-arg ref="watchService"/>
</bean>

<bean id="WatchService" class="java.nio.file.WatchService" destroy-method="close"/>

The WatchServiceRunnableWrapper很简单:

public class WatchServiceRunnableWrapper implements Runnable {

    private WatchService WatchService;

    public WatchServiceRunnableWrapper(WatchService watchService) {
        this.watchService = watchService;
    }

    public void run() {
        watchService.poll();
        //
    }
}

我还没有测试过它,但它或多或少应该可以正常工作和关闭。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Bean 在自己的线程中运行 的相关文章

随机推荐

  • 将 Rscript 中的布尔值输出到 Bash 变量中

    我有一个输出 TRUE 或 FALSE 的 R 脚本 在 R 中 它使用真正的 T F 数据类型 但是当我将其返回值回显给 bash 时 它似乎是一个字符串 表示 1 TRUE or 1 FALSE 它们的前面都有 1 0 也不是 这不是拼
  • 结合 CSS 的方法

    我有多个CSS文件 设计师制作了几个 bad迭代 我需要将其合并到一个文件中 然而 我不想把它们放在一起 我想合并类似选择器的属性 即 file 1 mainmenu width 100 background 01568b text dec
  • Oracle 相当于 Postgres 的 DISTINCT ON?

    在 postgres 中 您可以使用以下命令查询组中的第一个值DISTINCT ON 在Oracle中如何实现这一点 来自 postgres 手册 SELECT DISTINCT ON 表达式 仅保留第一行 给定表达式计算结果相等的每组行
  • Gson 在转换时忽略我的字段

    我创建了一个模型 public class UserRequest extends DefaultRequest public String username public String password public String id
  • 翻译 Angular-UI 分页

    如何翻译 Bootstrap UI 分页指令中的文本 我已经为法语翻译覆盖了这样的常量 angular module myapp ui bootstrap constant paginationConfig itemsPerPage 10
  • 我怎样才能完成“组”活动?

    我的 Android 应用程序中有一个操作 其中包括几个活动 在此操作结束时 我需要关闭所有这些活动并返回到启动此操作的屏幕 下图解释了它是如何工作的 有什么选择可以做到这一点吗 P S 片段在我的情况下不是一个选项 有很多方法可以做到这一
  • Django 1.4 用户管理 list_filter 使用 UserProfile 字段

    编辑 我更新了代码以反映查询集过滤器中的一个错误 其中我的 user user type 已被正确的 userprofile user type 替换 我正在使用 Django 1 4 并且我知道有一个新功能可以为管理员创建自定义 list
  • R - 使用字体(extrafont)时不打印空格

    我想使用特殊字体生成 R 图 即 Cormorant Garamond Light Cormorant Light 也是可能的 问题是它适用于所有其他字体 但对于这种字体 所有空格都被忽略 library ggplot2 library e
  • 我如何知道证书的 storeName 是什么?

    我在 Windows Server 2003 中安装了证书 我从MMC看到的路径是 证书 本地计算机 个人 证书 我想在我的 wcf 配置中配置它 我如何知道 storeName 是什么 这是我到目前为止在 wcf 配置中得到的
  • 命令行开关阻止 Inno Setup 安装程序创建桌面图标

    我正在尝试为 Balsamiq Mockups 创建静默安装 该安装似乎是使用 Inno Setup 编译器创建的 作为标准静默安装的一部分 它会创建一个我希望阻止的桌面快捷方式 有谁知道相关的命令行开关来防止创建桌面图标 我尝试过使用 M
  • 如何在sql server中进行交易技术分析计算?

    我如何像在 Excel 中一样使用 T SQL 在 SQL SERVER 数据库中进行技术分析指标计算 例如平均方向指数 随机振荡指标等 如果可以的话 是否可以像在excel中做宏一样制作程序呢 提前致谢 程序代码是在 MS SQL Ser
  • 将没有“timevar”的数据帧从长格式转置/重塑为宽格式

    我有一个遵循以下长模式的数据框 Name MedName Name1 atenolol 25mg Name1 aspirin 81mg Name1 sildenafil 100mg Name2 atenolol 50mg Name2 ena
  • 使用 clojure-csv.core 解析巨大的 csv 文件

    到目前为止我有 require clojure csv core as csv require clojure java io as io def csv file getFile clojure java io resource verb
  • 从电子邮件中删除不需要的标头(出于安全风险)

    我刚刚注意到 使用 mail 函数从我的主机发送的电子邮件也会发送标头中的内部数据 例如 这是我在 Gmail 中找到的内容 通过单击显示原件 X AntiAbuse This header was added to track abuse
  • 可以在生产 Laravel 网站上运行 php artisan :clear 命令吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个托管在 DigitalOcean NGINX 服务器上的生产 Laravel 网站 每次 git 推送新更新时 我总是运行以下命令 ph
  • MySQL 左连接多对一行

    为了简化我的问题 假设我有 3 个表 Rooms People Things id name id name fk rooms id name fk rooms 1 kitchen 1 John 1 1 TV 2 2 bedroom 2 M
  • 下载 .zip 文件会运行损坏的文件 php

    我试图强制下载受保护的 zip 文件 我不希望人们在没有先登录的情况下访问它 我为以下创建了函数login等等 但我遇到了下载的文件损坏的问题 这是我的代码 file downloads filename header Content ty
  • 尝试使用 TkAgg 后端绘图时 Mac 操作系统崩溃

    当我尝试使用 TkAgg 后端进行绘图时 我的计算机将我注销 崩溃 请参见下面的示例 我正在使用 mojave 10 14 6 和 python 3 7 3 from sys import platform as sys pf if sys
  • 如何替换分页中的文本“行”

    In the 分页示例 http issues wenzhixin net cn bootstrap table options client side pagination html 如何用另一个单词替换底部的文本 行 例如 产品 显示
  • Spring Bean 在自己的线程中运行

    在我的 Web 应用程序中 我尝试使用 Java SDK7 WatchService 创建目录轮询 bean 我想要实现的是在它自己的线程中运行这个bean 这样它就不会阻塞应用程序 就像是