SpringCloud-eureka实战遇到的问题

2019-07-12  本文已影响0人  天的安排

今天在写代码时,突然遇到了这个错

Could not autowire. No beans of ‘RestTemplate’ type found. less…
(Ctrl+F1) Inspection info:Checks autowiring problems in a bean class.
image.png

发现网上的一些解决方案竟然是在 Intellij Idea中设置一下:
Settings - Editor - Inspections - Spring - Spring Core - Code - Autowiring for Bean Class - disable(idea2017是把√去掉)
关掉这种提示,这不是自欺欺人么?

真正解决方案:
1.添加依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

2.在一个配置类中定义这个类,即可正确修复

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
image.png

使用RestTemplate调用服务的时候报错:java.net.UnknownHostException,根据服务名调用不通提供者的地址

解决方案:

#消费者的pom中加上ribbon的依赖
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-ribbon -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
            <version>2.1.2.RELEASE</version>
        </dependency>

#RestTemplate配置备案上增加注解@LoadBalanced
@Configuration
public class ConfigBean {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

最终访问ok,结果图如下:


上一篇下一篇

猜你喜欢

热点阅读