【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求

简介: 【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求


一、注册它

@MapperScan("com.gq.order.mapper")
@SpringBootApplication
public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }
    /**
     * 服务(项目启动过程中会创建 RestTemplate 的实例, 将它放入 IoC 容器
     * 要使用 RestTemplate 的时候, 注入即可
     */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    
}

二、使用它

@Service
@Transactional
public class OrderServiceImpl implements OrderService {
    @Resource
    private OrderMapper orderMapper;
    @Resource
    private RestTemplate http;
    /**
     * 根据订单 id 查询订单
     */
    @Transactional(readOnly = true)
    @Override
    public Order getOrderById(Long orderId) {
        // 根据 orderId 查询订单
        Order orderById = orderMapper.getOrderById(orderId);
        if (orderById != null) {
            // 根据 userId 发送网络请求查询用户信息
            Long userId = orderById.getUserId();
            String url = "http://localhost:8081/users/getUserById/" + userId;
            // 发送网络请求
            User userById = http.getForObject(url, User.class);
            orderById.setUser(userById);
        }
        return orderById;
    }
}
相关文章
|
26天前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
107 0
|
2天前
|
Java 数据库 Spring
切面编程的艺术:Spring动态代理解析与实战
切面编程的艺术:Spring动态代理解析与实战
16 0
切面编程的艺术:Spring动态代理解析与实战
|
27天前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
42 1
|
29天前
|
前端开发 网络协议 Java
【spring(六)】WebSocket网络传输协议
【spring(六)】WebSocket网络传输协议
|
1月前
|
Java Shell API
通用Shell脚本执行Spring Boot项目Jar包
通用Shell脚本执行Spring Boot项目Jar包
|
1月前
|
存储 Java 关系型数据库
Spring Batch学习记录及示例项目代码
Spring Batch学习记录及示例项目代码
|
1月前
|
安全 Java 应用服务中间件
新版idea(2023)创建spring boot3项目
新版idea(2023)创建spring boot3项目
107 1
|
1月前
|
算法 Java Maven
Spring Boot项目Jar包加密基本概念
Jar包加密是一种将Spring Boot项目的Jar包进行加密的技术,以保护项目中的代码和资源不被未授权访问和篡改。通过Jar包加密,可以将Jar包中的所有文件转换成加密的格式,只有拥有正确密钥的客户端才能解密和访问这些文件。
63 0
|
17天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
37 0