我想知道什么是组织我的捆绑包的好方法,以便可以在它们之间共享作为服务参数所需的类。
我有几个服务接口,它们暴露了需要在Bundes之间引用的类类型,例如:
public interface DoesThis {
public CustomClassB doSomething(CustomClassA customClassA);
}
根据我的理解CustomClassA
(如果在与暴露服务相同的包中定义)将不可用于其他包,那么最好在包中的包之间公开类引用然后导出吗? / p>
正如一个子问题:服务和包装出口是否应该携手合作......如果是这种情况,从我正在阅读的文件中不清楚?
谢谢
答案 0 :(得分:1)
基本上,是的。接口引用的所有类型都必须位于导出的包中。有几个选择:
如果您考虑一下,对于不要导出的类型没有意义。例如,如果消费者无法创建要传入的doSomething
类型的对象,或者如果它无法理解返回类型CustomClassA
,那么消费者如何调用您的CustomClassB
方法?
关于您的子问题...是的,包导出主要用于支持服务注册表。服务只有在提供者和消费者能够就服务的“合同”达成协议时才能工作,这在Java术语中意味着它们加载了相同的接口。