我正計劃在我的項目中使用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