我正计划在我的项目中使用RabbitMQ作为AMQP实现。 但我想限制自己只使用AMQP规范,不使用任何RabbitMQ extensions to AMQP。如何让编译器限制我使用任何RabbitMQ AMQP扩展?
有没有办法让编译器离开这个'spec-safety'检查? 例如:如果有一个RabbitMQ的仅限AMQP规范的库,那么通过只包含这个库,我可以让它留给编译器来抱怨,每次我尝试使用扩展时(因为它找不到定义/实现AMQP规范库中的扩展)。
我想这样做,所以如果我尝试切换到不同的AMQP实现,它会更容易! (我打算使用Spring Integration从底层的AMQP实现中抽象出来)。
是的。这是一个rabbitmq问题,而不是Spring问题。您的声明“[Spring-AMQP]可能会或可能不会与其他经纪人合作。”让我感到害怕,因为它是由Spring集成团队成员制作的!但我很欣赏诚实!可能是我天真地认为像Spring-AMQP这样的项目应该将自己限制在AMQP规范中,并忽略实现的自定义扩展! – brainOverflow 2013-05-03 23:24:43
如果我只是使用Spring的AmqpTemplate(而不是由RabbitTemplate添加的)方法,那么尽管我实例化了RabbitTemplate,但我应该能够避免AMQP实现依赖关系? – brainOverflow 2013-05-03 23:49:54
我的意思是我们使用底层的Rabbit Java客户端; Spring-AMQP将与其他经纪商合作,以便Rabbit Java客户端与其他经纪商合作。 Spring-AMQP旨在作为一种机制来提供对* any * java客户端的抽象;与'spring-amqp'项目中的一般抽象以及'spring-rabbit'项目中对RabbitMQ java客户端的抽象相关。 如果出于某种原因(与一些其他经纪人),兔子客户端不能为你工作,那么spring-xxx项目可以提供,同时为应用程序保持一致的API。 – 2013-05-03 23:54:51