一. الربيع : :
application.xml
<؟ xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: dwr = "http://www.directwebremoting.org/schema/spring-dwr" xmlns: jaxrs = "http://cxf.apache.org/jaxrs http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhtp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhtp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhtp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhtp://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/Spring-DWR-3 id = "monitor" class = "com.Interfaces.file.monitor.filemonitorimpl"> <constructor-arg index = "0" value = "10000" /> <!-监测时间间隔 监测时间间隔 单位 : :-> <biet-arg index = "1" ref = "observer" /> <! id = "observer" class = "com.Interfaces.file.monitor.fileObserverImpl"> <constructor-arg index = "0" value = "d: // uploaddir"/> <! -> </bean> <!-文件监听器-> <bean id = "leader" class = "com.Interfaces.file.monitor.filelistener"/> <!- -> <constructor-arg index = "0" value = "xml"/> </bean> </bans>
二. الربيع : :
SpringContextLoaderListener.class
استيراد javax.servlet.servletcontextevent getScanner () ؛ // 启动目录扫描器 scanner.start () ؛} @Overridepublic void contextDestRoyed (حدث servletContexTevent) {filemonitor scanner = getCanner () ؛ // 关闭目录扫描器 scanner.stop () ؛ super.contextroyed (event) ؛ getCurrentWebPlicationContext (). getBean (filemonitor.class) ؛}}三. الويب : :
web.xml
<؟ XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd http://xmlns.jcp.org http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd " الإصدار = "2.4"> <Context-Param> <Param-Name> ContextConfigLocation </param-name> <Param-value> classpath: application.xml </param-value> </sunk-param> <nistener> <stanker-class> com.web.springContextListener </stankerer-clateR> <evener>
四. 文件监测器
1. : filemonitor.class
استيراد org.apache.commons.io.monitor.filealterationobserver ؛/*** 文件监测器角色*/واجهة عامة filemonitor {/*** 注册观察器* @param observer 观察器*/void addobserververver (filealterationobserver observer) ؛ /*** 获取注册的所有观察器*regurn 观察器集合*/iterable <IlealterationObserver> getObservers () ؛ /*** 启动监测器*/void start () ؛ /*** 停止监测器*/void stop () ؛ /*** 获取监测间隔时间*regurn 间隔时间 (单位 : :)*/long getInterval () ؛ } 2. : filemonitorimpl.class
استيراد java.util.concurrent.threadfactory ؛ استيراد org.apache.commons.io.monitor.filealterationaltitor ؛ استيراد org.apache.commons.io.monitor.filealteration ؛ FileMonitorImpl ينفذ filemonitor {private finalterationmonitor monitor ؛/*** 监测器线程名称*/private static final string monitor_thread_name = "file monitor daemon" ؛/*** 监测器线程 daemon 标记*/private static boolean daemon = false ؛ Observer) {this (الفاصل الزمني ، المراقب ، New BasicTreadFactory.Builder (). namingpattern (monitor_thread_name) .daemon (daemon) .build ()) ؛ } /*** 定义监测时间间隔、文件观察器和线程工厂* param الفاصل الزمني 监测时间间隔* param observer 文件观察器* param factory 线程工厂* /filemonitorimpl (int interal ، finalealterationobserver onberver ، finalfrayfactory factory) {this.monitor = new filealterationmonitor (intervaltertationObserver }/*** 添加文件观察器*param observer*/ @ @verridepublic void addobserver (filealterationoBserver Observer) {monitor.addobserver (abserver) ؛}/*** 删除文件观察器*param observer*/ @overridepublical removeObserver (filealterationobserver) {monitor.removeObserver (observer) ؛}/*** 获取注册的所有观察器*@return*/@overridepublic itervable <FileAlterationObserver> getObservers () {return monitor.getobservers () ؛}/*** {E.PrintStackTrace () ؛}}/*** 停止监测器*/@@outridepublic void stop () {try {monitor.stop () ؛} catch (استثناء e) {E.PrintStackTrace () ؛}}/*** }}五. 文件观察器
1. : : fileObserver.class
استيراد java.io.file ؛ import org.apache.commons.io.monitor.filealterationlistener ؛/*** 文件观察器角色*/واجهة عامة fileObserver {/*** 添加监听器* @param المستمع*/void addListener (Finalealterationlistener leader) ؛获取注册的监听器* @return*/itervable <FileAlterationListener> getListeners () ؛ /*** 初始化观察器*throos استثناء*/void تهيئة () رمي الاستثناء ؛ /*: /*: 2. : fileObserverImpl.Class
استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد org.apache.commons.io.fileutils ؛ استيراد org.apache.commons.io.iocase ؛ import org.apache.commons.io.monitor.filealterationlister ؛当有文件创建、删除、或变更动作时 , 则消息通知监听器*/فئة عامة fileObserverImpl تمتد filealterationobserver تنفيذ fileObserver {private static static final long serialversionuid = -723922728953899330l ؛/*** 文件过滤器*/private filefilter filter ؛文件监听器*/public fileObserverImpl (سلسلة dir ، مرشح filefilter النهائي ، مستمع FileAlterationListener) {super (dir ، filter ، (iocase) null) ؛ addListener (المستمع) ؛ this.filter = filter ؛ file directory = new file (dir) ؛ // 如果目录不存在 if (! directory.exists ()) {try {fileutils.forcemkdir (directory) ؛} catch (ioException e) {e.printstacktrace () ؛ {fileutils.forcedelete (directory) ؛ fileutils.forcemkdir (directory) ؛} catch (ioException e) { removelistener (مستمع FinalEterationListener النهائي) {super.removelistener (مستمع) ؛}/*** 获取观察者对象的所有监听器*/@outridepublic itervable <FileAlterationListener> getListeners () {return super.getListeners () ؛}/***销毁文件观察者*/@@overridepubublic void dorder () رمي الاستثناء {super.destroy () ؛}/*** 获取所观察的目录*/@@verridepublic file getDirectory () {return super.getdirectory () ؛}/*** 获取文件过滤器*@return*/publicfilter getfilter ()六. : :
FileListener.class
استيراد java.io.file ؛ استيراد org.apache.commons.io.monitor.filealterationListerAderAdaptor ؛ استيراد org.apache.commons.io.monitor.filealteration ؛/*** افعل شيئًا}/*** 文件删除 ((转移) 时执行的动作 时执行的动作*/@@overridepublic void onfiledelete (ملف ملف) {// للقيام بشيء}/***停止监听时执行的动作*/@@Overridepublic void onStop (filealterationobserver observer) {// للقيام بشيء}}七. 文件过滤器
1. : : filefilter.class
/*:
2. : :
filefilterimpl.class
استيراد java.io.file ؛ import org.apache.commons.io.filenameUtils ؛/*** 文件过滤器*/class public class filefilterimpl تنفذ filefilter {private string [] filenameUtils.isextension (pathname.getName () ، extensions) ؛ }/*** 获取定义的扩展名*regurn*/ @outridepublic string []以上所述是小编给大家介绍的 Java 实现文件变化监控 , 希望对大家有所帮助 , 如果大家有任何疑问请给我留言 , 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!