簡體   English   中英

Spring Bean在自己的線程中運行

[英]Spring Bean running in its own thread

在我的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"/>

WatchServiceRunnableWrapper很簡單:

public class WatchServiceRunnableWrapper implements Runnable {

    private WatchService WatchService;

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

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

我還沒有對它進行測試,但它或多或少應該正常工作和關閉。

我不熟悉Java 7的WatchService,但您可以使用Springs的調度支持 這是另一個教程和google搜索類似Spring Scheduled可能會發現更多的負載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM