Ich arbeite an einer unternehmenseigenen Spring Boot-Erweiterung, die eigene RabbitMQ-Clients automatisch konfiguriert. Diese Erweiterung (ein Starter) ersetzt die Spring Boot RabbitAutoConfiguration.SpringBoot Mehrere AutoConfiguration-Ausschlüsse beim Start definiert
Ich weiß, es gibt viele Möglichkeiten, um die RabbitAutoConfiguration zu deaktivieren:
- in jeder Applikation (Haupt-) Klasse mit @EnableAutoConfiguration (exclude = RabbitAutoConfiguration.class) oder @SpringBootApplication (exclude = RabbitAutoConfiguration.class)
- in der application.properties oder yml Datei (externalisierten oder innerhalb des jAR), mit spring.autoconfigure.exclude = org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration
Ich frage mich, ob es eine Möglichkeit gibt, dass die Präsenz meines neuen Starters die Spring Boot RabbitAutoConfiguration deaktiviert.
Ich habe einige schmutzige Dinge versucht, wie zum Beispiel eine application.properties mit der Eigenschaft exclude im Corporate-Starter-Modul, aber da Spring Boot nur einen im classpath liest, kann es leicht von einem in einer Client-Anwendung überschrieben werden . Ich möchte keine Einschränkungen auferlegen.
Ich mag nicht die Idee von jeder Anwendung, die den gleichen Ausschluss auf die eine oder andere Weise (Eigenschaften oder Annotation) hinzufügen.
Irgendwelche Ideen?
EDIT
ich mehrere RabbitMQ ConnectionFactory
und RestTemplate
innerhalb derselben Anwendung zu konfigurieren.
Wenn Sie Hase manuell konfigurieren, wird die automatische Konfiguration automatisch zurückgesetzt ... Sie müssen nicht ausgeschlossen werden. –
@M.Deinum Dies ist nicht das Verhalten, das ich bekomme, weil es zwei RabbitTemplate in der Konfiguration gibt. Die RabbitAutoConfiguration funktioniert nicht mit mehreren. –
Es gibt eine Menge '@ConditionalOnMissingBean' Annotation in der Konfiguration. Wenn Sie also bereits 'RabbitTemplate' und' Connection' hinzugefügt haben, sollte die Konfiguration nichts bewirken. –