我想使用ServiceTracker来消费我们公司发布的服务。 而是为每个服务创建新ServiceTracker的我想消费我认为这将是更好的创建只是一个带有过滤器,然后从它那里得到的服务有:如何高效地使用ServiceTracker来使用多个服务?
Filter filter = ctx.createFilter("(" + Constants.OBJECTCLASS + "=com.mycomp*)");
tracker = new ServiceTracker(ctx, filter, null);
这种方法的问题是,我当时需要遍历跟踪器发现的服务引用,检查它们的objectClass属性,看看我是否可以将它分配给服务对象,由于需要强制转换,这非常麻烦且容易出错。
任何其他的想法如何使用更优雅的方式cunsume多个服务?
非常感谢您的洞察彼得。我们使用Guice/Peaberry作为DI,所以我想我可以使用它们来做所有的事情以便消费服务,我只是讨厌他们使用ServiceModule和绑定创建的重载... – Joly 2011-03-24 10:15:57