SpringBoot 注入RestTemplate 我看了一下大都是让我们在启动类里面加一个Bean配置代码如下

    @Autowired
private RestTemplateBuilder builder; public static void main(String[] args) { @Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}

或者说是加一个

RestTemplateConfig.clss文件,放在启动类同包下,但是这个我没有验证
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate; @Configuration
public class RestTemplateConfig { @Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
return new RestTemplate(factory);
} @Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(15000);
factory.setReadTimeout(5000);
return factory;
}

但是我要说的不是这个

上面的很容易就搜到了,

我说的是关于注入时候回存在的问题

我们一般都是将,RestTemplate注入到Service里面,但是如果我们不将RestTemplate注入到Service而是注入到一个工具类,当成一个查询的工具使用的时候,我们就不能使用传统的注入方式

@Autowired
private RestTemplate restTemplate;

这样注入的时候还是会出现空指针的,但是我仔细翻了一下别的博客都没有对这个的解决方式,

实际上我们可以采用下面方式进行注入

 @Resource
public void setRestTemplate(RestTemplate restTemplate) {
IDUtil.restTemplate = restTemplate;
}

这样的话,我们在当成工具类使用的时候也不会出现空指针的异常了.

 public  static  String  getName(){
if(!isOpenEureka){
ResponseEntity<String> forEntity = restTemplate.getForEntity("http://"+ url+"/getName", String.class);
return forEntity.getBody();
}
return null;
}

Spring Boot注入RestTemplate ,出现空指针解决办法的更多相关文章

  1. [Java]Java 9运行Spring Boot项目报错的解决办法

    简介 为了学习和尽快掌握 Java 9 的模块化(Module System)新特性,最近安装了 JDK 9,新建了一个 Spring Boot 进行尝试, 过程中遇到了一下报错问题,写下此文谨作为个 ...

  2. spring boot项目遇到 'lower_case_table_names' 的解决办法

    今天自己搭建了spring boot项目,配置的是mysql数据库,启动时报如下错误 Mon Jan 22 23:31:40 CST 2018 WARN: Establishing SSL conne ...

  3. spring boot 注入 restTemplate

    转载自:http://blog.csdn.net/liuchuanhong1/article/details/54631080 package com.chhliu.springboot.restfu ...

  4. [java] bug经验 Unable to locate Spring NamespaceHandler for XML schema namespace解决办法

    报错关键字: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration probl ...

  5. 线程中无法实例化spring注入的服务的解决办法

    问题描述 在Java Web应用中采用多线程处理数据,发现Spring注入的服务一直报NullPointerException.使用注解式的声明@Resource和XML配置的bean声明,都报空指针 ...

  6. Spring Boot使用RestTemplate消费REST服务的几个问题记录

    我们可以通过Spring Boot快速开发REST接口,同时也可能需要在实现接口的过程中,通过Spring Boot调用内外部REST接口完成业务逻辑. 在Spring Boot中,调用REST Ap ...

  7. Spring @ResponseBody 返回乱码 的优雅解决办法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 返回的结果中,中文全部被问号(?)代替的解决办法: *-servlet.xml的部分配置如下: <bean id=&quo ...

  8. Spring/Spring boot正确集成Quartz及解决@Autowired失效问题

    周五检查以前Spring boot集成Quartz项目的时候,发现配置错误,因此通过阅读源码的方式,探索Spring正确集成Quartz的方式. 问题发现 检查去年的项目代码,发现关于QuartzJo ...

  9. Spring Boot整合Dubbo2.x,解决其中遇到的坑

    Dubbo了解 a high-performance, java based open source RPC framework. Dubbo官网 源码 文档 快速知道用法 本地服务 Spring 配 ...

随机推荐

  1. 如何为 esp32 编译和配置及烧写 MicroPython 固件。

    MicroPython 在 esp-idf (esp32) 上编译固件 esp32 编译 micropython 的固件相关的资料应该很多吧,我也会出一篇,但会额外讲一些 linux 的东西的. 资料 ...

  2. 在Markdown中写公式块

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. Markdown中的公式语法是遵循LaTex语法的 $ sum = \sum_{i ...

  3. 分布式缓存Redis+Memcached经典面试题和答案

    Redis相比memcached有哪些优势? (1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 (2) redis的速度比memcached快很多 ( ...

  4. django概念理解

    STATIC_URL 和 STATICFILES_DIRS 区别  static_url指定浏览器上访问静态文件的url前缀,也就是'/static/'前缀的都会认为是静态文件,django不解析,直 ...

  5. MyBatis、JDBC相关知识

    引言 在mybatis的基础知识中我们已经可以对mybatis的工作方式窥斑见豹.但是,为什么还要要学习mybatis的工作原理?因为,随着mybatis框架的不断发展,如今已经越来越趋于自动化,从代 ...

  6. svn+jenkins自动部署

    需求:项目经理想要将原型图修改完后直接发布 前置条件: 已经有了svn服务器,并正常使用 已经有了jenkins服务器,之前搭建的gitlab+jenkins, 如需搭建jenkins,参考 http ...

  7. 如何对Win10电脑文件夹选项进行设置?

    文件夹选项是Windows系统中非常重要的一个功能,在这里能对电脑内的文件及文件夹进行各种各样的设置以及操作.在Windows系统升级到Win10版本后,许多界面都发生了变化,文件夹选项也是如此,打开 ...

  8. 纯净CentOS搭建harbor镜像私仓

    物理宿主机IP:  192.168.1.4 在官网下载 CentOS-7-x86_64-DVD-1810 用Hyper-v建立一代虚机,安装时遇分辨率问题无法继续,需要在选择启动界面按TAB键以编辑启 ...

  9. 4.Shell 判断用户的参数

    1.Shell 判断用户的参数 系统在执行mkdir命令时会判断用户输入的信息,即判断用户指定的文件夹名称是否已经存在,如果存在则提示报错:反之则自动创建. Shell脚本中的条件测试语法可以判断表达 ...

  10. Redis01——Redis产生背景

    Redis 产生背景 1.1.数据存储的发展史 1.1.1.磁盘时代 很久之前,我们的数据存储方式是磁盘存储,每个磁盘都有一个磁道.每个磁道有很多扇区,一个扇区接近512Byte. 磁盘的寻址速度是毫 ...