一. Primavera 配置文件: Application.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns: dwr = "http://www.directwebremoting.org/schema/spring-dwr" xmlns: jaxrs = "http://cxf.apache.org/jrs" xsi: schemalocation = "httpach.wwwwshwww.prmchwshww.prthansch.brphws 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-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd http://cxf.apache.org/jaxrs http://cxf.apache.g/schemas/Jaxrs.xsd "> <! index = "0" value = "10000"/> <!-监测时间间隔 , 单位 : : 毫秒-> <construtor-arg index = "1" ref = "observador"/> <!-文件观察器-> </i bean> <!-文件观察器-> <bean id = "observer"> <construtor-arg> <! <construtor-arg index = "1" ref = "filtro"/> <!-文件过滤器-> <construtor-arg index = "2" ref = "ouvinte"/> <!-文件监听器-> </i bean> <!-文件监听器-> <bean id = "ouvinte"/> <!-文件过滤器-> <bEan id = "" <!间隔 , 如: Xml, txt, bak-> <construtor-arg index = "0" value = "xml"/> </bean> </ Beans>
二. Primavera : : SpringContextLoaderListener.class
importar javax.servlet.servletContextevent; importar org.springframework.web.context.contextloaderListener; classe pública SpringContextLoaderListener estende o contextLoaderListener {@Override public Void contextinitialized (servletContextevent event) {.Coverride public Void (servletContextevent event) {.Conteride Public Void (servletContextevent event) {.Conteride Scanner filemonitor = getScanner (); // 启动目录扫描器 scanner.start (); } @Override public void contextDestroyed (Evento ServletContextevent) {Filemonitor Scanner = getScanner (); // 关闭目录扫描器 scanner.stop (); Super.ContextDestroyed (Evento); } / ** * 获取目录扫描器 * @return * / private filmonitor getScanner () {return getCurrentwebApplicationContext (). GetBean (filmonitor.class); }}三. Web 工程配置文件: Web.xml
<? xml versão = "1.0" coding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-innstance" xmlns: web = "http://xmlns.jcp.org/xmlns: web" 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/2_4.xsd http://xmlns.jcp.org/2_xmd http://xmlns.jcp.org/2_xmd http://xmlns.jcp.org/2_4 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "version =" 2.4 "> <contexto-param> <amam-name> contextConfiglocation </param-name> <ampalue> Classpath: Application.XML </param-value> </contextiM> <Ilvier-Class> com.web.springcontextLoaderListener </lister-class> </ouvinte> </web-app>
四. 文件监测器
1. 接口 : filmonitor.class
importar org.apache.commons.io.monitor.FilealterationObServer;/** * 文件监测器角色 */interface pública filmonitor {/** * 注册观察器 * @param observador 观察器 */void addObServer (FileAlterationObserver Observer); / ** * 删除观察器 * @param observador 观察器 */ void removebserver (FileAlterationObServer Observer); / ** * 获取注册的所有观察器 * @return 观察器集合 */ iterable <FileAlterationObServer> getObServers (); / ** * 启动监测器 */ void start (); / ** * 停止监测器 */ void stop (); / ** * 获取监测间隔时间 * @return 间隔时间 (单位 : : 毫秒) */ long getInterval (); }2. 实现类 : FilemonitorImpl.class
importar java.util.Concurrent.ThreadFactory; importar org.apache.commons.io.monitor.FilealterationMonitor; importar org.apache.commons.io.monitor.FilealterationObServer; Importrg.apache.Commons.Lang3.Current.BasicThTactory; implementa Filemonitor {private final FileAlterationMonitor Monitor; / ** * 监测器线程名称 */ private estático final String monitor_thread_name = "Daemon do monitor de arquivo"; / ** * 监测器线程 Daemon 标记 */ private estático final booleano daemon = false; / ** * 定义监测时间间隔、文件观察器 * intervalo @param 监测时间间隔 * @param observador 文件观察者 */ filemonitorImpl (intervalo int, FileAlterationObserver Final FileAlTerationObServer Observer) {this (intervalo, observador, new BasicThreadFactory.Builder (). NamingPattern (Monitor_Thread_Name) .Daon; } / ** * 定义监测时间间隔、文件观察器和线程工厂 * intervalo @param 监测时间间隔 * @param observador 文件观察器 * @param fábrica 线程工厂 * / filemonitorImpl (interval de intervalo, FileAlterationObserver Final Observador, Final Factory) {this.monitor = newIlTerationMonitor (intervalo, {{{NONMONITE {NOVA FILEATIONIMENTIONISTOR); monitor.setThreadFactory (Factory); } / ** * 添加文件观察器 * @param observador * / @Override public void addObServer (FileAlterationObServer Observer) {Monitor.adDobserver (Observer); } / ** * 删除文件观察器 * @param observador * / @Override public void RemowObServer (FileAlterationObServer Observer) {Monitor.RemoveObServer (Observer); } / ** * 获取注册的所有观察器 * @return * / @Override public iterable <FileAlterationObServer> getObServers () {return monitor.getObServers (); } / ** * 启动监测器 * / @Override public void start () {try {monitor.start (); } catch (Exceção e) {e.printStackTrace (); }} / ** * 停止监测器 * / @Override public void stop () {try {monitor.stop (); } catch (Exceção e) {e.printStackTrace (); }} / ** * 获取监测时间间隔 * / @Override public Long getInterval () {return monitor.getInterval (); }}五. 文件观察器
1. 接口 : FILEOBSERVER.CLASS
importar java.io.file; importar org.apache.commons.io.monitor.FilealterationListener;/** * 文件观察器角色 */interface pública FileObServer {/** * 添加监听器 * @param ouvinte */void addListener (listener de filealterationListener final); / ** * 删除监听器 * @param ouvinte */ void removeListener (ouvinte final FileAlterationListener); / ** * 获取注册的监听器 * @return */ iterable <FileAlterationListener> getListeners (); / ** * 初始化观察器 * @THOWSECT Exception */ void Initialize () lança exceção; / ** * 销毁观察器 * @THOWS Exception */ void Destroy () lança exceção; / ** * 获取观察的目录 * @return */ arquivo getDirectory (); / ** * 获取文件过滤器 * * @return */ public FileFilter getFilter ();}2. 实现类 : FileObserverimpl.class
importar java.io.file; importar java.io.ioException; importar org.apache.commons.io.fileutils; importar org.apache.commons.io.iocase; importação org.apache.commons.io.monitor.FileAlterationListener; importação.apache.commons.oMons.io.monitor.FileAlterationListener;当有文件创建、删除、或变更动作时 , 则消息通知监听器 */classe pública FileObServerImpl estende FileAlTerationObServer implementa FileObServer {private estático final seriialversionuid = -7239227289538993830l; / ** * 文件过滤器 */ filtro FileFilter final privado; / ** * 设置要监听观察的目录 , 并设置文件过滤器和监听器 , 用以观察指定具有指定扩展名的文件 * @param dir 观察监听的目录 * @param filtro 文件过滤器 * @param ouvinte 文件监听器 */ public fileObServerImpl (String dir, filtro FilFilter final, FileAlterationListener ouvinte) {super (dir, filtro, (iocase) null); addListener (ouvinte); this.filter = filtro; Diretório de arquivos = novo arquivo (dir); // 如果目录不存在 if (! Diretório.exists ()) {try {fileutils.forcemkdir (diretório); } catch (ioexception e) {e.printStackTrace (); }} // 如果存在的是文件 else if (diretório.exists () && diretório.isfile ()) {try {fileUtils.forceletete (diretório); Fileutils.forcemkdir (diretório); } catch (ioexception e) {e.printStackTrace (); }}} / ** * 添加监听器 * / @Override public void addListener (ouvinte final FileAlterationListener) {super.addlistener (ouvinte); } / ** * 移除监听器 * / @Override public void removeListener (ouvinte final FileAlterationListener) {super.removelistener (ouvinte); } / ** * 获取观察者对象的所有监听器 * / @Override public iterable <FileAlterationListener> getListeners () {return super.getListeners (); } / ** * 初始化文件观察者 * / @Override public void Initialize () lança Exceção {super.initialize (); } / ** * 销毁文件观察者 * / @Override public void Destroy () lança exceção {super.Destroy (); } / ** * 获取所观察的目录 * / @Override public arquivo getDirectory () {return super.getDirectory (); } / ** * 获取文件过滤器 * @return * / public fileFilter getFilter () {return filter; }}六. 文件监听器 : FILELISTER.CLASS
import java.io.File;import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;import org.apache.commons.io.monitor.FileAlterationObserver;/** * 文件监听器 */public final class FileListener extends FileAlterationListenerAdaptor { /** * 文件创建时执行的动作 */ @Override public void onFileCreate(File file) {// Para fazer algo} /** * 文件删除 (转移) 时执行的动作 时执行的动作 * /@Override public void onFiledElete (arquivo de arquivo) {// para fazer algo} /** * 文件内容改变时执行的动作 * /@Override public void OnFileChange (arquivo de arquivo) {// para fazer algo} /** * 开始执行监听时执行的动作 * / @overrides Fazer algo} / ** * 停止监听时执行的动作 * / @Override public void ONSTOP (FileAlterationObServer Observer) {// para fazer algo}}七. 文件过滤器
1. 接口 : FileFilter.class
/** * 文件过滤器角色 , 扩展自 java.io.filefilter */interface pública FileFilter estende java.io.filefilter {/** * 获取定义的扩展名 * * @return */string [] getExtensions ();}2. 实现类 : FileFilterImpl.class
importar java.io.file; importar org.apache.commons.io.filenameutils;/** * 文件过滤器 */classe pública FileFilterImpl implementa FileFilter {private String [] Extensões; public filefilterImpl (string ... extensões) {this.extensions = extensões; } / ** * 是否接受该文件 * / @Override public boolean Acep (File PathName) {return filenameutils.isextension (pathname.getName (), extensões); } / ** * 获取定义的扩展名 * @return * / @Override public String [] getExtensions () {return Extensions; }}以上这篇 Java 实现文件变化监控的方法 (推荐) 就是小编分享给大家的全部内容了 , 希望能给大家一个参考 , 也希望大家多多支持武林网。