• [Spring Cloud] RestTemplate跨进程调用


    ✨✨个人主页:沫洺的主页

    📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                               📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                               📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

    💖💖如果文章对你有所帮助请留下三连✨✨

    衔接上篇: [Spring Cloud] Eureka Server安装_沫洺的博客-CSDN博客

    🌹创建子模块

    注意创建的子模块要在父模块的pom.xml中声明一下 

    子模块spring-cloud-eureka-a

     pom文件如下

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <parent>
    6. <groupId>com.mominggroupId>
    7. <artifactId>spring-cloud-rootartifactId>
    8. <version>0.0.1-SNAPSHOTversion>
    9. <relativePath>../pom.xmlrelativePath>
    10. parent>
    11. <artifactId>spring-cloud-eureka-aartifactId>
    12. <dependencies>
    13. <dependency>
    14. <groupId>org.springframework.bootgroupId>
    15. <artifactId>spring-boot-starter-webartifactId>
    16. dependency>
    17. <dependency>
    18. <groupId>org.springframework.cloudgroupId>
    19. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    20. dependency>
    21. <dependency>
    22. <groupId>org.springframework.bootgroupId>
    23. <artifactId>spring-boot-starter-testartifactId>
    24. <scope>testscope>
    25. dependency>
    26. dependencies>
    27. <build>
    28. <plugins>
    29. <plugin>
    30. <groupId>org.springframework.bootgroupId>
    31. <artifactId>spring-boot-maven-pluginartifactId>
    32. plugin>
    33. plugins>
    34. build>
    35. project>

    application.properties建立a应用

    1. server.port = 9091
    2. spring.application.name = a
    3. eureka.client.service-url.defaultZone=http://ek1.cn:8001/eureka/,http://ek2.cn:8002/eureka/

    创建测试接口controller/A

    1. @RestController
    2. public class A {
    3. @GetMapping("/a/test")
    4. public String test(@RequestParam(value = "name",required = false) String name){
    5. return "这是A应用返回的接口,参数为: "+name;
    6. }
    7. }

    启动项目,即可查看服务注册成功

     访问a应用

     子模块spring-cloud-eureka-b

    创建同理

    pom.xml

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <parent>
    6. <groupId>com.mominggroupId>
    7. <artifactId>spring-cloud-rootartifactId>
    8. <version>0.0.1-SNAPSHOTversion>
    9. <relativePath>../pom.xmlrelativePath>
    10. parent>
    11. <artifactId>spring-cloud-eureka-bartifactId>
    12. <dependencies>
    13. <dependency>
    14. <groupId>org.springframework.bootgroupId>
    15. <artifactId>spring-boot-starter-webartifactId>
    16. dependency>
    17. <dependency>
    18. <groupId>org.springframework.cloudgroupId>
    19. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    20. dependency>
    21. <dependency>
    22. <groupId>org.springframework.bootgroupId>
    23. <artifactId>spring-boot-starter-testartifactId>
    24. <scope>testscope>
    25. dependency>
    26. dependencies>
    27. <build>
    28. <plugins>
    29. <plugin>
    30. <groupId>org.springframework.bootgroupId>
    31. <artifactId>spring-boot-maven-pluginartifactId>
    32. plugin>
    33. plugins>
    34. build>
    35. project>

    application.properties建立b应用

    1. server.port = 9092
    2. spring.application.name = b
    3. #注册中心
    4. eureka.client.service-url.defaultZone=http://ek1.cn:8001/eureka/,http://ek2.cn:8002/eureka/

    启动类添加@EnableDiscoveryClient注解

    1. @SpringBootApplication
    2. //能从服务中心拉东西
    3. @EnableDiscoveryClient
    4. public class App {
    5. public static void main(String[] args) {
    6. SpringApplication.run(App.class, args);
    7. }
    8. }

    注册RestTemplate,代码如下

    1. @Configuration
    2. public class RestTemplateConfig {
    3. @Bean
    4. @LoadBalanced//负载均衡功能
    5. public RestTemplate restTemplate(){
    6. return new RestTemplate();
    7. }
    8. }

    创建测试接口controller/B.调用a服务对应接口

    1. @RestController
    2. public class B {
    3. @Autowired
    4. private RestTemplate restTemplate;
    5. @GetMapping("/b/test")
    6. public String test(@RequestParam(value = "nickName",required = false) String nickName){
    7. //希望访问到A的应用
    8. String ret = restTemplate.getForObject("http://a/a/test?name=张三", String.class);
    9. return ret+"的小名: "+nickName;
    10. }
    11. }

    同时运行A,B服务

    访问b应用,调用a服务对应接口成功

  • 相关阅读:
    23、wpf之布局(一)
    Aws Ec2服务器设置密码登录
    查看mysql 容量
    【Vue插件】一款很好用的vue日历插件——vue-sweet-calendar
    JVM学习笔记
    leetcode-151. 颠倒字符串中的单词-20220823
    IDEA代码重构技巧--迁移
    Python实现对wx进行信息推送
    Mac连接虚拟机(Linux系统)
    DSP开发环境及工具之CCS
  • 原文地址:https://blog.csdn.net/HeyVIrBbox/article/details/127907062