一. 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.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema http://www.springframework.org/schema/Context/Spring-Context-3.1.xsd http://www.directwebremoting.org/schema/Spring-Dwrp://wwww.directwebremoting.org/Schema/Spring-Dwrwe http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd "> <!-文件监测器-> <bean id =" monitor "> <constructor-arg index =" 0 "valor =" 10000 "/> < ref = "Observer"/> <!-文件观察器-> </bean> <!-文件观察器-> <bean id = "observador"> <constructor-arg index = "0" valor = "d: // uploadDir"/> <!-观察的目录->> <constructor-arg index = "1" ref = "filtrar"/> <!-文件过滤器-> <constructor-arg indexin "2" 2 "/" reflex " <
二. Spring 上下文加载监听器 : SpringContextLoLOCKERLISTENER.CLASS
import javax.servlet.servletContextEvent; import org.springframework.web.context.contextloaderListener; public class SpringContextLoaderListener extiende contextienslloaderListener {@Override public void contextInitialized (servletContextEvent Event) {super.contextiniTialized (event); Filemonitor scanner = getsCanner (); // 启动目录扫描器 scanner.start (); } @Override public void contextDestroyed (servletContextEvent Event) {Filemonitor Scanner = getSCanner (); // 关闭目录扫描器 scanner.stop (); super.ContextDestroyed (evento); } / ** * 获取目录扫描器 * @return * / private filemonitor getScanner () {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> contextciglocation </amamname> <Oyerer-class> com.web.springContextLoaderListener </oyeyer-class> </oyente> </seb-app>
四. 文件监测器
1. : : Filemonitor. Clase
importar org.apache.commons.io.monitor.filealterationObserver;/** * 文件监测器角色 */public interfaz Filemonitor {/** * 注册观察器 * @param observador 观察器 */void addObServer (FilealterationObServer Observer); / ** * 删除观察器 * @param Observer 观察器 */ void RemoBServer (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.basicthreadyfactory;/** * 监测器 监测时间间隔 监测时间间隔 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器 设置文件观察器Implementa Filemonitor {Monitor privado final de FilealterationMonitor; / ** * 监测器线程名称 */ Private static final String monitor_thread_name = "File Monitor Daemon"; / ** * 监测器线程 Daemon 标记 */ Daemon Booleano final estático privado = falso; / ** * 定义监测时间间隔、文件观察器 * @param intervalo 监测时间间隔 * @param observador 文件观察者 */ filemonitorImpl (int interval, final filealterationObServer observador) {this (interval, observador, nuevo básico de factory.builder (). Namingpattern (monitor_thread_name) .Daemon (demonio) .build ()); } / ** * 定义监测时间间隔、文件观察器和线程工厂 * @param intervalo 监测时间间隔 * @param observador 文件观察器 * @param factory 线程工厂 * / filemonIperSpl (int interval, final fileRealterationObServer Observer, Final Factory Factory) {this.monitor = New FilealterationMonitor (interval, nuevo FilealterationAtationServer [] {observador}); monitor.setThreadFactory (fábrica); } / ** * 添加文件观察器 * @param observador * / @Override public void addObServer (FileAlterationObServer Observer) {monitor.AdDobServer (Observer); } / ** * 删除文件观察器 * @param Observer * / @Override public void RemoBServer (FilealterationObServer Observer) {monitor.removeObServer (observador); } / ** * 获取注册的所有观察器 * @return * / @Override public ITerable <FileAlterationObServer> getObServers () {return monitor.getObServers (); } / ** * 启动监测器 * / @Override public void start () {try {monitor.start (); } catch (Exception e) {E.PrintStackTrace (); }} / ** * 停止监测器 * / @Override public void stop () {try {monitor.stop (); } catch (Exception e) {E.PrintStackTrace (); }} / ** * 获取监测时间间隔 * / @Override public Long GetInterval () {return monitor.getInterval (); }}五. 文件观察器
1. : : FileObServer.class
import java.io.file; import org.apache.commons.io.monitor.filealterationListener;/** * 文件观察器角色 */public interfaz FileObServer {/** * 添加监听器 * @param oyente */void addListener (finalmente filealterationListener oyente); / ** * 删除监听器 * @param oyente */ void removeListener (finalmente filealterationListener oyente); / ** * 获取注册的监听器 * @return */ ITerable <FilealterationListener> getListeners (); / ** * 初始化观察器 * @throws Exception */ void Initialize () arroja excepción; / ** * 销毁观察器 * @throws Exception */ void Destroy () 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.ap.apomons.io.monitor.fileLeRationationser;当有文件创建、删除、或变更动作时 , 则消息通知监听器 */Public Class FileOBServerImpl extiende FilealterationObServer implementa fileObServer {private estático final de serie LongUdVersionUid = -7239227289538993830L; / ** * 文件过滤器 */ Filtro de Filter de Archivo Final Privado; / ** * 设置要监听观察的目录 , 并设置文件过滤器和监听器 , 用以观察指定具有指定扩展名的文件 * @param dir 观察监听的目录 * @param filtro 文件过滤器 * @param oyente 文件监听器 */ public fileObServerImpl (String Dir, Filter Fast Filter Filter, FilealterationListener Listener) {Super (Dir, Filter, (IOCase) null); AddListener (oyente); this.filter = filtro; Directorio de archivos = nuevo archivo (dir); // 如果目录不存在 if (! Directory.Exists ()) {try {fileutils.forcemkdir (directorio); } catch (ioException e) {E.PrintStackTrace (); }} // 如果存在的是文件 else if (directorio.exists () && directorio.isfile ()) {try {fileUtils.forcedelete (directorio); Fileutils.forcemkdir (directorio); } catch (ioException e) {E.PrintStackTrace (); }}} / ** * 添加监听器 * / @Override public void addListener (final de filealterationListener oyente) {super.addListener (oyente); } / ** * 移除监听器 * / @Override public void RemoVeListener (FinalealterationListener Listener) {super.removelistener (oyente); } / ** * 获取观察者对象的所有监听器 * / @Override public ITerable <FilealterationListener> getListeners () {return super.getListeners (); } / ** * 初始化文件观察者 * / @Override public void Initialize () lanza la excepción {super.initialize (); } / ** * 销毁文件观察者 * / @Override public void destruye () lanza la excepción {super.destroy (); } / ** * 获取所观察的目录 * / @Override Public File getDirectory () {return super.getDirectory (); } / ** * 获取文件过滤器 * @return * / public FileFilter getFilter () {Filtro de retorno; }}六. : : Filelistener.class
import java.io.file; import org.apache.commons.io.monitor.filealterationListenerAdaptor; import org.apache.commons.io.monitor.fileLealterationObServer;/** * 文件监听器 */public Final Clase FileListener extiende FilealterationListenerAdaptor {/** * 文件创建时执行的动作 */ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ archivo) {// para hacer algo} / ** * 文件删除(转移)时执行的动作 * / @Override public void onFileDelete (archivo de archivo) {// para hacer algo} / ** * 文件内容改变时执行的动作 * / @Override public void onFilechange (archivo de archivo) {// para hacer algo} / ** * 开始执行监听时执行的动作 * / @Override public Public OnstArt (FileAlterationObserverver) / ** * 停止监听时执行的动作 * / @Override public 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 class FilterImpl implementa FileFilter {private String [] extensions; public FileFilterImpl (String ... Extensions) {this.extensions = extensions; } / ** * 是否接受该文件 * / @Override public boolean Acepter (File PathName) {return FileNameUtils.isExtension (PathName.getName (), Extensions); } / ** * 获取定义的扩展名 * @return * / @Override public String [] getExtensions () {return Extensions; }}以上这篇 java 实现文件变化监控的方法 (推荐) 就是小编分享给大家的全部内容了 , 希望能给大家一个参考 也希望大家多多支持武林网。