我对如何在测试环境中进行接线有所兴趣。 我有一种特殊的情况,我想在 main 中有Oracle AQ队列,而在 test 中有ActiveMQ队列。
我正在使用Spring Boot,并且弄清楚了如何使Oracle AQ正常工作。我正在使用Java配置。
在主配置中,我定义以下bean(仅相关的imo):
正在使用:
org.springframework:spring-jms
javax.jms:jms
javax.transaction:jta
com.oracle:aqapi
com.oracle:ojdbc8
org.springframework.data:spring-data-oracle
此外,当前在另一个项目中,我具有默认的ActiveMQ设置。 在那里,我仅定义了一个bean(也许甚至没有它也可以做到):
自动接线的是:
我使用:
org.springframework:spring-jms
javax.jms:jms
org.springframework.boot:spring-boot-starter-activemq
org.apache.activemq:activemq-broker
现在,我想将两种方法结合起来:在主测试中使用OracleAQ,在测试中使用ActiveMQ。
所以我想我的问题确实是:当 main 手动配置了相同接口的bean时,如何在 test 中使用自动配置的bean?
在这种情况下,很难(封装代码)在 test 环境中手动重新组装自动配置的bean,所以我在考虑忽略 main 的方向em>豆左右。 另一个想法是自己创建一个自动配置。
还有其他想法吗?提示?例子吗?
我认为使用依赖注入的想法应该相当容易,但是我不确定如何实现。
我还认为这种情况可能对队列非常特定,例如可以将它概括为在main中使用数据库类型*(例如postgres)在测试中使用H2 。
谢谢
编辑:
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html解释了如何用自己的bean替换自动配置。我需要的是另一种方法。