el *_*00b 2 spring service-discovery spring-boot consul
我下面列出的类 ( ServiceDiscoveryConfiguration) 从未被使用过。即使我删除了@EnableDiscoveryClient以试图完全避免设置,它仍然会尝试连接到 Consul。
唯一对我有用的是完全删除 Consul Maven 依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果不通过配置文件和注释设置,我可以做些什么来阻止 Consul 运行单元测试?
我有一个使用 Spring Consul 的应用程序。我设置了一个类来启用这样的发现:
@Profile ("!" + Profiles.UNIT_TEST)
@Configuration
@EnableDiscoveryClient
public class ServiceDiscoveryConfiguration {
}
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,这应该是禁用 Consul 部分。基本测试类(它abstract在我的所有单元测试之间共享)使用以下注释设置。这就是我认为问题所在。
@SpringBootTest (classes = Service.class)
@WebAppConfiguration
@TestExecutionListeners (...)
@DirtiesContext
@ActiveProfiles (Profiles.UNIT_TEST)
@Test (...)
public abstract class AbstractBootTest extends AbstractTestNGSpringContextTests {
// ...
}
Run Code Online (Sandbox Code Playgroud)
当我执行我的测试时,我得到:
引起:com.ecwid.consul.transport.TransportException:java.net.ConnectException:连接被拒绝
这让我相信配置文件激活不起作用,或者我!在@Profile规范上使用运算符的语法没有做我认为应该做的事情。根执行类本身有基本的注释,包括一个@ComponentScan注释,我知道它有适当的包被扫描。
帮助?
您可以通过禁用
@TestPropertySource(properties = {"spring.cloud.consul.config.enabled=false"})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3027 次 |
| 最近记录: |