• 全部
  • Java SE
  • Java EE
  • J2ME
  • IDE工具
  • 求助
  • 内推招聘
  • 问答

中间件中的单实例或静态工厂的处理问题

steven_cheng 2004-08-09 06:19:50
是这样的,在开发中间件程序的时候考虑到这样一个问题。比如,log4J,在开发中间件的时候,我们需要用到log4J,中间件提供给集成商后,他也可能用到log4J。我们都知道log4J的使用上是一个静态工厂,如果有两次初始化,那后一次的起作用。
这个问题就是:如何在一个JVM上有多个Log4J工厂的实例,互相隔绝。
查了一些资料,ClassLoader应该能实现这个功能。但是不知道具体怎么做。请高手指教。
...全文
170 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
connection999 2005-08-05
方成eform自定义表单平台,纯BS结构.100%开放源码.可以在 http://218.30.103.110:8080/eform/index.html 在线试用.

eform自定义表单平台是一个在IE浏览器中可视化的设计软件界面的工具。无论是输入界面还是报表界面,无论是简单的输入查询还是复杂的逻辑处理。都可以由eform设计出来。

eform自定义表单平台适用于网上OA系统的自定义表单模块,工作流系统的自定义表单模块,信息管理系统方面的软件开发项目等等。
回复
yeshucheng 2005-07-20
这个帖子还够老的了:)
回复
understand999 2005-07-20
eprint自定义打印是解决B/S模式下报表打印问题的一个工具,用于应对各种复杂的中国式报表打印。能够快速实现打印格式设计,格式维护,以及和用户系统的无缝集成,是web方式下实现报表打印的最快最佳的解决方案。

eprint自定义打印真正做到打印格式的完全自定义,采用和FastReport类似的布局来设计报表打印格式,通过数据集作为中间层和用户系统做接口,在设计报表打印格式时,选择数据结构(与字段信息类似)生成打印格式;在生成打印报表时,自动填充数据集中的记录数据,生成打印数据;同时支持打印纸型,打印方向,页边距等等打印参数的个性化定义。eprint自定义打印支持各种类型的复杂报表打印,真正做到“所见即所得”的图形化界面来设计打印格式,支持各种证件,票据套打等等。适用于j2ee,dotnet,linux等多种平台,通过中间层数据集和用户系统做关联,后台支持任意数据库环境。


eForm是一个页面设计工具,它既能完成静态HTML页面的设计,也能读写数据库完成动态页面设计。它采图形化可视化操作,所见即所得;通过拖拉即可完成表单设计。提供多种数据类型和Html控件,并预实现常见的业务逻辑功能(新增、删除、修改、查看、查询、报表、打印、图表等),用户无需编程或是修改代码,完全在界面上操作即可设计完页面;也能写一些事件的代码以完成复杂表单的设计。
eForm实际上就是一个构件库,它对大量实用的控件进行了结构化的封装和调试。通过简单的拖拉设置就可以实现控件所能实现的功能,从而大大减少了代码的编写和调试难度.

回复
cbhyk 2004-08-10
可以使用多个配置文件对log4j进行配置的。

使用org.apache.log4j.PropertyConfigurator

public class PropertyConfigurator extends Object implements Configurator

Allows the configuration of log4j from an external file. See doConfigure(String, LoggerRepository) for the expected format.


public static void configure(String configFilename)


public static void configure(URL configURL)
Read configuration options from url configURL.


public static void configure(Properties properties)

Read configuration options from properties. See doConfigure(String, LoggerRepository) for the expected format.


public void doConfigure(String configFileName,
LoggerRepository hierarchy)

Read configuration from a file. The existing configuration is not cleared nor reset. If you require a different behavior, then call resetConfiguration method before calling doConfigure.

注意上面的这句话:The existing configuration is not cleared nor reset

例:
logs1.properties:

log4j.logger.log1=debug,A2
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=log1.log
log4j.appender.A2.Append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-5r %-5p [%t] %c{2} - %m%n
log4j.additivity.log1=false


log2.properties:

log4j.logger.log2=debug,A2
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=log2.log
log4j.appender.A2.Append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-5r %-5p [%t] %c{1} - %m%n
log4j.additivity.log2=false


public class Test
{
public static void main(String[] args)
{
PropertyConfigurator.configure("logs1.properties");
PropertyConfigurator.configure("logs2.properties");
Logger log1 = Logger.getLogger("log1");
Logger log2 = Logger.getLogger("log2");
log1.info("test1");
log2.info("test2");
}
}
回复
HITZXL 2004-08-10
study
回复
ITxiaopang 2004-08-10
全是五个三角!顶
回复
steven_cheng 2004-08-09
我们开发的是中间件。我们不能强迫用户用我们的log4j的配置。同样,我们也不可能以后在用户实施的时候让我们的系统用用户的配置。我希望的是,将来用户实施的时候,根本不关心我们的配置。
回复
jeffyan77 2004-08-09
同一个log4j的instance也可以写到不同的log文件中,因此使用多个instance有何必要?
回复
watch
回复
shuneng 2004-08-09
gz
回复
yeshucheng 2004-08-09
public class EJBHomeFactory {
private Map eHomes;
private static EJBHomeFactory aFactorySingleton;

Context ctx;

private EJBHomeFactory() throws NamingException {
ctx = new InitialContext();
this.eHomes= Collections.synchronizedMap(new HashMap());
}

/*
* Returns the singleton instance of the EJBHomeFactory
**/
public static EJBHomeFactory getFactory() throws NamingException {
if (EJBHomeFactory.aFactorySingleton == null) {
EJBHomeFactory.aFactorySingleton = new EJBHomeFactory();
}
return EJBHomeFactory.aFactorySingleton;
}

public Object lookUpHome(String name) throws NamingException {
Object theEJBHome = this.ejbHomes.get(name);

if (theEJBHome == null) {
theEJBHome = ctx.lookup(name);
this.eHomes.put(name, theEJBHome );
}
return anEJBHome;
}

public EJBHome lookUpHome(Class homeClass) throws NamingException {
EJBHome theEJBHome = (EJBHome)this.eHomes.get(homeClass);

if (theEJBHome == null) {
theEJBHome = (EJBHome) javax.rmi.PortableRemoteObject.narrow(
ctx.lookup(homeClass.getName()), homeClass);
this.eHomes.put(homeClass, theEJBHome );
}
return theEJBHome ;
}
}
回复
相关推荐
ASP.NET Core应用针对静态文件请求的处理[3]: StaticFileMiddleware中间件如何处理针对文件请求...
我们通过《以Web的形式发布静态文件》和《条件请求与区间请求》实例演示,以及上面针对条件请求和区间请求的介绍,从提供的功能和特性的角度对这个名为StaticFileMiddleware的中间进行了全面的介绍,接下来我们...
基于JAVA的购物网站(毕业论文)
XX 大 学   毕业设计(论文)         题目: 基于Java技术的网上交易系统的开发         学 院: 专 业: 班 级: ...
Java消息中间件入门与实践
跟我Java消息中间件一、Java消息中间件简介1.1 消息中间件概述1.2 消息中间件图示1.3 常见消息中间件对比1.3.1 ActiveMQ1 概述2 特性1.3.2 RabbitMQ1 概述2 特性1.3.3 Kafka1 概述2 特性1.3.4 综合评价1.4 JMS1.4.1 ...
【Django 笔记】常用功能--静态文件、中间件、后台管理(更新:使用富文本编辑器)
笔记主要基于官方文档,从中提取要点和记录笔记,关键处包含了官方文档链接。详见官方文档。 官方文档:Django documentation 博客推荐:Django2.2教程 ...项目的CSS、图片、js等都是静态文件。...
学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?
学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西? 原文:学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?ASP.NET Core管道虽然在结构组成上显得非常简单...
ActiveMQ环境搭建及实例详解
JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。而ActiveMQ是这个规范...
中间件——期末考试复习要点及真题
分布:任务已不只是在单机上运行,而是由网络多台计算机上的相关应用共同协作完成; 异构:计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类不同; 动态协作:参与协作的应用允许位置透明性、迁移...
中间件(一)
redis
聊聊消息中间件
聊聊消息中间件消息中间件概述分布式架构通信原理SOA架构微服务架构分布式同步通信的问题分布式异步通信模式消息中间件简介消息中间件概念主流消息中间件及选型选取原则RabbitMQRocketMQKafka消息中间件应用场景电商...
消息中间件ActiveMQ/RabbitMQ/RocketMQ/Kafka从入门到精通
消息中间件activemq/rabbitMQ/rocketMQ/kafka 从入门到精通 mom消息中间件 推模式 参考资料 分布式消息中间件实战(倪炜)沈剑 架构师之路 spring实战 文章目录消息中间件activemq/rabbitMQ/rocketMQ/kafka 从入门...
阿里巴巴中间件之Nacos
一.Nacos是什么? Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助...如图所示,他可以无缝的集成其他的中间件,如: Spring Cloud、Apache Dubbo、Kubernetes等。 使用 Nacos 简化
ASP.NET Core 中间件的使用(二):依赖注入的使用
上一篇大家已经粗略接触了解到.NET Core中间件的使用:ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件, .NET Core框架很多核心对象都是通过依赖注入的方式提供的,那什么是依赖注入? 这也...
分布式中间件之Dubbo详解
以前是工作遇到了哪方面的问题才去学习并解决,很难形成知识体系,在拉勾高薪训练营里课程内容很丰富,基础回顾加进阶讲解,完美的打造了个人的知识体系,为成为一名合格的架构师奠定了基础;2.值得一说的是“闯关式...
ASP.NET Core Startup类 Configure()方法 | ASP.NET Core 中间件详细说明
ASP.NET Core 程序启动过程如下 目录 Startup 类 Configure() 方法 ...Extension Methods(拓展方法)--微软提供的中间件 1, Startup 类 ASP.NET Core 应用使用Startup类,按照约定命名为Star...
消息中间件---RabbitMQ
人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,即中间件+平台+通信,这个定义也限定了只有用于分布式系统才能称为中间件,...
总结集合,消息中间件
1.Redis与Mysql如何保证数据一致性问题? ①传统的解决方案:直接清理Redis缓存 ②mysql每次做update、add、del 日志都会记录起来binlog,可以用mq监听binlog是否发生变化,会把发生变化的数据放到消息中间件里面,...
Spring源码-getBean获取bean实例
单例bean,并且lazy-init为false(默认是false),则 ApplicationContext在刷新的时候就实例化该Bean,并且将实例化的Bean放到缓存,下次再使用该Bean的时候, 直接从这个缓存获取;如果单例bean是懒加载的,即...
创建型设计模式(1):工厂模式
静态方法简单工厂工厂方法模式1.模式说明2.开发实例抽象工厂模式1.模式特点2.组成角色3.开发实例4.良好拓展性 工厂模式对将调用的方法或者通过new创建类对象的过程进行封装。就好像使用数据库中间件的过程,无需关心...
理解面向消息中间件及JMS 以及 ActiveMQ例子
为了帮助你理解ActiveMQ的意义,了解企业消息...软件开发者经常需要在两个系统之间交流搬运数据。这种问题有很多解决办法。但限于你的条件和需求,选择一种解决方案是一个大决定。商业需求往往有严格的限制条件,直接
7. Jackson用树模型处理JSON是必备技能,不信你看
别只会一股脑的String -> POJO了,Jackson优雅灵活的树模型你值得拥有
CListControl设置颜色
CListControl类派生,设置单元格颜色,丰富功能
Linux系统管理员/网络管理员(PDF版)
两本非常好的Linux系统学习的书 系统管理主要介绍Linux系统的结构、管理、命令等 网络管理主要从网络协议角度出发阐述Linux的网络功能
STM32F103中文数据手册
这个里面包含了STM32F103的各种型号的数据手册,方面理解
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer)
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer) 具体见博文:http://blog.csdn.net/zzzwwwppp11199988899/article/details/78131292
MSP430_RTC模块学习总结
这是自己在学习MSP430时,对RTC模块的总结,希望可以帮助刚入门者
CIET-2019-0504 数据中心运维管理人才标准.pdf
数据中心运维管理,人才标准,欢迎查看共同学习。
webrtc demo使用方法
谷歌webrtc demo的使用教程,webrtc源代码自行从官网下载,该教程只给出了源代码详细的使用方法,包括如何编译
C语言及程序设计初步
课程针对没有任何程序设计基础的初学者,全面介绍C语言及利用C语言进行程序设计的方法。课程注重知识的传授,更关注学习者能够通过实践的方式,真正学会利用C语言解决问题,奠定程序设计的基础。为此,专门设计了实践方案,指导学习者在听讲的同时,有效完成实践。讲课中还适时穿插进行学习指导,帮助初学者尽快掌握程序设计的学习方法。 课程主要针对无任何编程经历的初学者,利用主讲者多年来教授大一学生的教学经验,准确把握知识点掌握中的难点,在和视频配套的实践方案配合下,帮助初学者顺利掌握知识,获得学习中的自信。
朴素贝叶斯算法做文本分类-代码
https://blog.csdn.net/zzZ_CMing/article/details/89478436 朴素贝叶斯算法做文本分类,用的是谭松波酒店语料。
FANUC的3210密码破解软件
FANUC 3210 密码破解软件,读取SRAM备份文件,不需要注册,完全免费。
发帖
Java
创建于2007-09-28

4.7w+

社区成员

Java相关技术讨论
申请成为版主
帖子事件
创建了帖子
2004-08-09 06:19
社区公告
暂无公告