一. Primavera 配置文件 :
Application.xml
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" "" "" xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: context = "http://www.springframework.org/schema/schemt" " xmlns: dwr = "http://www.directwebremoting.org/schema/spring-dwr" xmlns: jaxrs = "http://cxf.apache.org/jaxrs" xsi: esquematication http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/Jaxrs.xsd" >!-- 文件监测器-<Bean id = "monitor" class = "com.interfaces.file.monitor.filemonitorImpl"> <constructor-arg index = "0" value = "10000" /> <!-监测时间间隔 , 单位 单位 毫秒-> <constructor-arg index = "1" ref = "observador" /> <!-文件观察器-> < /frijol> <!-文件观察器-> <<remar id = "observador" class = "com.interfaces.file.monitor.fileBServerImpl"> <constructor-arg index = "0" value = "d: // uploadDir"/> <!-观察的目录->> <constructor-arg index = "1" ref = "filtrar"/> <!-文件过滤器-> <constructor-arg index = "2" ref = ""/"/" filtro "/" <! -> </bean> <!-文件监听器-> <bean id = "oyearer" class = "com.interfaces.file.monitor.fileListener"/> <!-文件过滤器-> <bean id = "filtre" class = "com.interfaces.file.monitor.fileFilterImpl"> <!-指定文件扩展名 只有指定的扩展名文件会被处理。不同的扩展名间以 只有指定的扩展名文件会被处理。不同的扩展名间以 "," -> <constructor-arg index = "0" value = "xml"/> </bean> </les>
二. Primavera 上下文加载监听器 :
SpringContextLoLOCKERLISTENER.CLASS
import javax.servlet.servletContextEvent; import org.springframework.web.context.contextloaderListener; public class SpringContextLoLoCleListener extiende contextendingListener {@OverridePublic Void contextIniTialized (servletContextEvent Event) {super.contextinitialized (event); getSCanner (); // 启动目录扫描器 scanner.start ();} @overridePublic void contextDestroyed (servletContextEvent Event) {filemonitor scanner = getScanner (); // 关闭目录扫描器 scanner.stop (); super.ContextDestRoyed (event);}/*** 获取目录扫描器* @return*/private filemonitor getscanner () {return {return {return getCurrentWebApplicationContext (). GetBean (Filemonitor.class);}}三. Web :.
web.xml
<? xml versión = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: web = "http://xmlns.jcp.org/xml/ns/Javaee" 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/xml/ns/javaeeeeeeeeeeeeeeeeeeeeeee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd " Version = "2.4"> <context-param> <amamname> contextConfigLocation </param-name> <amam-value> classpath: application.xml </amam-value> </text-param> <searcher> <searcher-class> com.web.springcontextloaderListener </oyuryer-class> </oyeyer>
四. 文件监测器
1. : : Filemonitor. Clase
import org.apache.commons.io.monitor.FileAlterationObserver;/*** 文件监测器角色*/public interface FileMonitor {/*** 注册观察器* @param observer 观察器*/void addObserver(FileAlterationObserver observer);/*** 删除观察器* @param observer 观察器*/void removeObserver(FileAlterationObserver observer); /*** 获取注册的所有观察器*@return 观察器集合*/ITerable <FilealterationObServer> getObServers (); /*** 启动监测器*/void start (); /*** 停止监测器*/void stop (); /*** 获取监测间隔时间*@return 间隔时间(单位 : 毫秒)*/long getInterval (); } 2. : : FilemonitorImpl.Class
import java.util.concurrent.threadFactory; import org.apache.commons.io.monitor.filealterationMonitor; importar org.apache.commons.io.monitor.filealterationObServer; importar org.apache.commons.lang3.concurrent.basicthreadfactory;/*** 监测器 监测时间间隔 监测时间间隔 监测时间间隔 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器implementa filemonitor {private final FilealterationMonitor Monitor;/*** 监测器线程名称*/private static final string monitor_thread_name = "Daemon de monitor de archivo";/*** 监测器线程 demonio 标记*/private static final boomean daemon = false;/*** 定义监测时间间隔、文件观察器* @@Param Interval 监测时间间隔*@param observador 文件观察者*/filemoniMPL (int intervalo, int intervalo final filealteratereBerSoBerSOBSER) {this (Interval, Observer, New BasicThreadFactory.Builder (). NamingPattern (monitor_thread_name) .daemon (demonio) .Build ()); } /*** 定义监测时间间隔、文件观察器和线程工厂* @param intervalo 监测时间间隔* @param observador 文件观察器* @param factory 线程工厂* /filemonIperSpl (int interval, final filealterationObServer Observer, fábrica final threadfactory) {this.monitor = new FileAlterationMonitor (intervalo, nuevo FilealterationObServer [] {observador}); Monitor.setThactory (fecheatory); }/*** 添加文件观察器*@param observador*/ @overridePublic void addObServer (FileAlterationObServer Observer) {monitor.AdDobServer (observador);}/*** 删除文件观察器*@param observador*/ @overridePublic void eliminar removeServer (filealterationOboberBerBerVer) {monitor.removeObServer (observador);}/*** 获取注册的所有观察器*@return*/@overridePublic ITerable <FileAlterationObServer> getObServers () {return Monitor.getObServers ();}/*** 启动监测器*/@overPublic Public Void start () {intit {monitor.stArt ();} Catch (Exception E) {E.PrintStackTrace ();}}/*** 停止监测器*/@overRidePublic Void stop () {try {monitor.stop ();} catch (excepción e) {E.PrintStackTRace ();}}/*** 获取监测时间间隔*/@overpublic Public Long getInterval () {return.getNetNetVal (); }}五. 文件观察器
1. : : FileObServer.class
import java.io.File;import org.apache.commons.io.monitor.FileAlterationListener;/*** 文件观察器角色*/public interface FileObserver {/*** 添加监听器* @param listener*/void addListener(final FileAlterationListener listener);/*** 删除监听器* @param listener*/void removeListener(final FileAlterationListener oyente);/*** 获取注册的监听器* @return*/ITerable <FilealterationListener> getListeners (); /*** 初始化观察器*@throws Exception*/void Initialize () arroja excepción; /*** 销毁观察器*@throws Exception*/void destruye () arroja excepción; /*** 获取观察的目录* @return*/file getDirectory ();/*** 获取文件过滤器** @return*/public fileFilter getFilter ();} 2. : FileObServerImpl.Class
import java.io.file; import java.io.ioException; import org.apache.commons.io.fileUtils; import org.apache.commons.io.iocase; import org.apache.commons.io.monitor.filealterationListener; importar org.apomons.io.monitor.filealterationation;当有文件创建、删除、或变更动作时 , 则消息通知监听器*/public class FileOBServerImpl extiende FilealterationObServer implementa fileObServer {private static final long SerialVersionUid = -7239227289538993830l;/*** 文件过滤器*/Filtro de archivo final de los privados Filtro;/*** 设置要监听观察的目录 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 观察监听的目录 electrónico eléctrico eléctrico 文件过滤器*文件监听器*/public FileOBServerImpl (String Dir, Filter Filter Filter, FilealterationListener Listener) {super (dir, filtro, (iocase) null); addListener (oyente); this.Filter = Filter; File Directory = new File (Dir); // 如果目录不存在 if (! Directory.Exists ()) {try {fileUtils.forCemkDir (Directory);} Catch (ioException e) {e.PrintStackTRace {FileUtils.forcedelete (directorio); fileUtils.forcemkdir (directorio);} catch (ioException e) {E.PrintStackTrace ();}}/*** 添加监听器*/@overRidePublic Void AddListener (final FilealterationListener oyer) remoVeListener (finalmente filealterationListener oyente) {super.removeListener (oyente);}/*** 获取观察者对象的所有监听器*/@overridePublic ITerable <FileAlterationListener> getListeners () {return super.getListeners ();}/****/@overridePublic Void inicialize () lanzan excepción {super.initialize ();销毁文件观察者*/@overRidePublic void destruye () lanza la excepción {super.destroy ();}/*** 获取所观察的目录*/@overridePublic getDirectory () {return super.getDirectory ();}/*** 获取文件过滤器*@return*/public FileFilter getFilter () {return Fotler;}}六. 文件监听器 :
Filelistener.class
import java.io.file; import org.apache.commons.io.monitor.filealterationListenerAdaptor; import org.apache.commons.io.monitor.fileLealterationObServer;/*** 文件监听器*/public Final Class Filelistener extiende FileRealterationListenerAdaptor {/*** 文件创建时执行的动作*/@@@@ # OnfilEctreat (archivo OnfilEtreat (archivo (archivo (archivo (archivo (archivo Azate (Archivo Archivo (archivo Azate (Archivo Archivo (archivo Azate (Archivo Archivo (archivo Azate (Archivo Archivo (Archivo Archivo (archivo Archivo (archivo Archivo (archivo Archive (archivo Azate (archivo Azate (archivo Azate (archivo Azate (archivo Azate (archivo Azul {// para hacer algo}/*** 文件删除(转移)时执行的动作*/@overridePublicPublic void onFileDelEte (archivo de archivo) {// para hacer algo}/*** 文件内容改变时执行的动作*/@overridePublic void onFilechange (archivo de archivo) {// para hacer algo}/*** 开始执行监听时执行的动作*/@anverpublic void void onStart (fileRterationObserververver)停止监听时执行的动作*/@overridePublic void onStop (FilealterationObServer Observer) {// para hacer algo}}七. 文件过滤器
1. : : FileFilter.Class
/*** 文件过滤器角色 , 扩展自 java.io.fileFilter*/Public Interface FileFilter extiende java.io.fileFilter {/*** 获取定义的扩展名** @return*/string [] getExtensions ();}2. 实现类 :
FileFilterImpl.class
import java.io.file; import org.apache.commons.io.fileNameUtils;/*** 文件过滤器*/public classFilterImpl implementa filefilter {private string [] extensions; public fileFilterImpl (string ... extensions) {this.extensions = Extensions;}/*** 是否接受该文件*/@overidepide (File FilenameUtils.isextension (pathname.getName (), extensiones); }/*** 获取定义的扩展名*@return*/ @overridePublic string [] getExtensions () {return Extensions;}}以上所述是小编给大家介绍的 java 实现文件变化监控 , 希望对大家有所帮助 如果大家有任何疑问请给我留言 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持! 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!