一。春季:
application.xml
<?xml版本=“ 1.0”编码=“ utf-8”?> <beans xmlns =“ http://www.springframework.org/schema/beans/beans” xmlns:xsi =“ XMLNS:tx =“ http://www.springframework.org/schema/tx” xmlns:aop =“ http://wwwwwww.springframework.org/schema/schema/aop/aop/aop” XMLNS:DWR =“ http://www.directwebremoting.org/schema/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/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframewramework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframewramework.org/schema/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhtp://www.directwebremoting.org/schema/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/schemas/jaxrs/jaxrs.-jaxrs. jaxrs. jaxrs.xsrs.xsssd oeal id =“ monitor” class =“ com.interfaces.file.file.monitor.filemonitorimpl”> <structionor-arg index =“ 0” value =“ 10000” /> <! - 监测时间间隔,单位,> <-> <structionor-arg indexor-arg index =“ 1” 1“ ref =” ref =“ observer” /> <! - > <! id =“观察者” class =“ com.interfaces.file.monitor.fileobserverimpl”> <structionor-arg index =“ 0” value =“ d:// uploaddir”/> <! - > <! - 观察的目录-> <structor-arg intructor-arg inderdor-arg index =“ 1” ref filt - > </bean> <! - >> <bean id =“ linter” class =“ com.interfaces.file.file.file.file.filelistener”/> <! - > <bean ID =“ filter” class =“ com.interfaces.file.file.monitor.filefilefilterimpl”> - > <constructor-arg index =“ 0” value =“ xml”/> </bean> </beans>
二。春季:
SpringContextLoaderListener.Class
import javax.servlet.ServletContextEvent;import org.springframework.web.context.ContextLoaderListener;public class SpringContextLoaderListener extends ContextLoaderListener{@Overridepublic void contextInitialized(ServletContextEvent event) {super.contextInitialized(event);FileMonitor scanner = getScanner(); //启动目录扫描器scanner.start();} @overridePublic void contextDestroyed(servletContextExtevent event){filemonitor scanner = getscanner(); // scanner.stop(); scanner.stop() getCurrentWebapplicationContext().getBean(filemonitor.class);}}}三。网络::
web.xml
<?xml版本=“ 1.0” encoding =“ utf-8”?> <web-app xmlns:xsi =“ http://www.w.w.3.org/2001/xmlschema-chema-chema-chema-instance“ xmlns” xmlns:web =“ XSI:schemalocation =“ http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/xml/xml/ns/javaee/web-app_2_2_2_ssd http http http://xmlns.jcp.org/jcp.org/xml/nssns/jcml/jml/jcml/jcml/jcml/jcml/jcml/jcml/jcml/jcmjmj.ren.-jcmjm j.re.j.re.ns-j. n.n. n n n n n http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“ version="2.4"><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:application.xml</param-value></context-param><listener><listener-class>com.web.SpringContextLoaderListener</listener-class></listener></web-app>
四。 文件监测器
1。接口:filemonitor.class
导入org.apache.commons.io.io.monitor.filealteration observer;/***文件监测器角色*/公共接口filemonitor {/***注册观察器*@param observer观察器*/void addobserver(fileAlterationObserationObserver observer observer observer observer);/*** @param observer comberver comberration emerver remaber remaberer( /***获取注册的所有观察器*@return观察器集合*/iToble <filealterationObserver> getObservers(); /***启动监测器*/void start(); /***停止监测器*/void stop(); /***获取监测间隔时间*@return 间隔时间(单位:毫秒:毫秒)*/long getInterval(); } 2。实现类:filemonitorimpl.class
导入java.util.concurrent.threadfactory; import org.apache.commons.io.monitor.filealterationMonitor; import org.apache.commons.io.monitor.filealter.filealterationobseration observer; import org.compace org.compace.apache.apache.apce.lang.lang3.concurrent.concurrent.basurent.basicthreadfactory; filemonitorimpl实施filemonitor {私人最终filestrationMonitor监视器;/***监测器线程名称*/私人静态最终字符串Monitor_thread_name =“文件监视器守护程序”;/***监测器线程守护程序标记/私人静态最终boolean dinemon = false = false = false;/*** *** @param Interver in Interation in Interation in Interation in Interim in Interimper( observer){this(Interval,observer,new BasicThreadFactory.builder()。namingpattern(monitor_thread_name).daemon(daemon).build()); } /*** 定义监测时间间隔、文件观察器和线程工厂* @param Interval监测时间间隔* @param observer文件观察器* @param factory线程工厂* /filemonitorimpl(int Intertal,final filealteration observer observer,final threadFactory farters){this.monitor = new fileAltertrationMonitor(new fileArterationMonitor(Interval,new FileAlterTealobsertrationObserationobserrationobserrationobserrationobserdirationobration oprory.fortastrory){casterrory(casterrory); } /*** 添加文件观察器* @param observer*/@Overridepublic void addObserver(FileAlterationObserver observer) {monitor.addObserver(observer);}/*** 删除文件观察器 * @param observer*/@Overridepublic void removeObserver(FileAlterationObserver observer) {Monitor.removeObServer(observer);}/***获取注册的所有观察器*@return*/@overridePublic itoble <fielealterationObserver> getObServer> getObServer> getObservers(){return return monitor.getObServers() {e.printstacktrace();}}/***停止监测器*/@overridePublic void stop(){try {monitor.stop();} catch(Exception e){e.printstacktrace() }}}五。 文件观察器
1。接口:fileObserver.class
导入java.io.file;导入org.apache.commons.io.monitor.fileAlterationListener;/***文件观察器角色*/公共接口file observer {/***添加监听器*@param listerer*/void addlistListEner(finalterterterationListerationListerationListerationListEnerlistener lister)听众);/***获取注册的监听器* @return*/itoble <FilealterationListener> getListeners(); /***初始化观察器*@throws异常*/void Initialize()抛出异常; /***销毁观察器*@throws异常*/void destroy()抛出异常; /***获取观察的目录* @return*/file getDirectory();/***获取文件过滤器** @return*/public filefilter getFilter();} 2。实现类:fileObserverimpl.class
导入java.io.file; import java.io.io.ioexception; import org.apache.commons.io.fileutils; import org.apache.commons.io.iocase; import org.apache.commons.io.io.io.monitor.monitor.monitor.monitor.filelealterterationListerationListerationListerationListener; import org.apache.camce.compace.commontation.monoriTation.fiLEAR* emorifer* yer* ytriatiation ****;当有文件创建、删除、或变更动作时,则消息通知监听器*/公共类FileObServerimpl扩展了FileSealtrationObserver {私有静态静态最终长序列uID = -723922727289538993830L;/***文件过滤器文件监听器*/public fileobserverimpl(字符串dir,Final FileFilter filter,filealterationListener侦听器){super(dir,filter,filter,(iocase)null); addListener(anderer); this.filter = filter; file directory = new file(dir); // if(!directory.exists()){try {fileutils.forcemkdir(directory);} catch(ioexception e){e.printstacktrace(e.printstacktrace() {FileUtils.forceDelete(directory);FileUtils.forceMkdir(directory);} catch (IOException e) {e.printStackTrace();}}}/*** 添加监听器*/@Overridepublic void addListener(final FileAlterationListener listener) {super.addListener(listener);}/***移除监听器*/@OverRidePublic void emovelistener(final fileSterationListener侦听器){super.removelistener(lister);}/***获取观察者对象的所有监听器/@@overridePublic itose <filealterationListerationListener>引发异常{super.initialize();}/***销毁文件观察者*/@overridePublic void dester()抛出异常{super.destroy();}/@overridePublic file getDirectory() }六。 文件监听器:
filelistener.class
导入java.io.file;导入org.apache.commons.io.monitor.filealterationListenerAdaptor; import org.apache.commons.io.commons.io.monitor.filealterationobserver observer;/***文件监听器*/***/***/*/ onfilecreate(文件文件){//做某事}/*** 文件删除(转移)时执行的动作*/@OverRidePublic void onfiledelete(file file){//做某事}/@overridepublicpublic void void onfileChange onfilechange(file file file file file) onstart(filealteration oberver observer){//做某事}/***停止监听时执行的动作*/@OverRidePublic void onStop onStop(filealteration observer observer){//做某事}}}七。 文件过滤器
1。接口:filefilter.class
/***文件过滤器角色文件过滤器角色
2。实现类:
filefilterimpl.class
导入java.io.file; import org.apache.commons.io.filenameutils;/***文件过滤器*/public class class filefilterimpl实现filefilter {private string [] extensions; public filefilterimpl(string ... string ... Extensions) filenameutils.isextension(pathName.getName(),扩展); }/***获取定义的扩展名*@return*/ @overridePublic string [] getextensions(){return extensions;}}}以上所述是小编给大家介绍的java实现文件变化监控,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!