欢迎来到天天文库
浏览记录
ID:34400975
大小:146.41 KB
页数:5页
时间:2019-03-05
《java程序实例java后台服务程序设计实例new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、java程序实例:Java后台服务程序设计实例疯狂代码http://CrazyCoder.cn/ĵ:http:/CrazyCoder.cn/Java/Article6155.html为什么需要后台服务?在许多大型软件Software项目中后台服务都扮演着极为重要角色它们无处不在例如操作系统内核处理各种对操作系统内部;数据库系统核心管理进程处理各种对数据库读写操作和进程、资源管理;大型ERP软件Software内核管理要完成各种应用模块资源、通讯管理等等它们使系统各种服务、资源和应用表示的间形成了个松耦合关系这样就极大地增加了软件Software系统稳定性和伸缩性后台服务也就是相当于软
2、件Software系统管理调度中心它是软件Software系统中央处理器是保证应用高效运行内核在区别软件Software系统中由于软件Software复杂程度和功能区别使得各种软件Software系统后台服务都有存在较大差异但是后台服务还是有很多共同特点个基本后台服务大概可以由4个部分构成:通用服务器框架、服务和监听、服务控制、服务器实现下面我们就使用具体代码来实现个基本后台服务器整理通用服务器框架在开发后台服务中我们首先实现个通用服务器框架类它能在多个端口提供多线程服务(由多个Service对象定义)并且能够在系统运行时动态地和例子化Service类并加载新服务或卸除已加载服务清单
3、1显示了如何编制个通用服务器框架类文件【清单1:通用服务器框架类文件Server.java】importjava.util.*;importjava.io.*;importjava.net.*;publicServer{protectedMapservices;Setconnections;maxConnections;freeConn;ThreadGroupthreadGroup;privatecurrentConn;privatePrWriterlog=PrWriter(.out,true);publicbooleanconnected=false;publicPropertie
4、sproPort,proNum;publicsynchronizedvoidControlFlag{connected=true;}publicsynchronizedvoidremoveControlFlag{connected=false;}publicvoidProperty(PropertiesproPort,PropertiesproNum){this.proPort=proPort;this.proNum=proNum;}publicServer(maxConn){this.maxConnections=maxConn;this.freeConn=maxConnectio
5、ns;this.threadGroup=ThreadGroup(Server..getName);currentConn=0;this.services=HashMap;this.connections=HashSet(maxConnections);}publicsynchronizedvoidaddService(Serviceservice,port,maxConn)throwsIOException{Stringservicename=service.getClass.getName;Integerkey=Integer(port);(services.get(key)!=n
6、ull)throwIllegalArgumentException("端口:"+port+"已经被占用!");(getfreeConnections(maxConn)>=0){Listenerlistener=Listener(this,port,service,maxConn);services.put(key,listener);log.prln("启动"+servicename+"服务在"+port+"端口上");listener.start;}{.err.prln("系统并发连接限制已经达到最大值!");.err.prln("服务"+service
7、name+"启动失败!");}}publicsynchronizedvoidaddService(Serviceservice,port)throwsIOException{this.addService(service,port,10);}publicsynchronizedbooleanremoveService(port){Integerkey=Integer(port);maxConn=10;finalListenerlistener=(Lis
此文档下载收益归作者所有