• 尚硅谷(SpringCloudAlibaba微服务分布式)学习代码Eureka部分


    1.项目结构

     

     

     2.cloud2024

    pom

    1. "1.0" encoding="UTF-8"?>
    2. "http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. 4.0.0
    6. com.atguigu.springcloud
    7. cloud2024
    8. 1.0-SNAPSHOT
    9. pom
    10. <module>cloud-provider-payment8001module>
    11. <module>cloud-consumer-order80module>
    12. <module>cloud-api-commonsmodule>
    13. <module>cloud-eureka-server7001module>
    14. <module>cloud-eureka-server7002module>
    15. <module>cloud-provider-payment8002module>
    16. UTF-8
    17. 1.8
    18. 1.8
    19. 4.12
    20. 1.2.17
    21. 1.18.30
    22. 8.0.18
    23. 1.1.16
    24. 1.3.0
    25. org.springframework.boot
    26. spring-boot-dependencies
    27. 2.2.2.RELEASE
    28. pom
    29. import
    30. org.springframework.cloud
    31. spring-cloud-dependencies
    32. Hoxton.SR1
    33. pom
    34. import
    35. com.alibaba.cloud
    36. spring-cloud-alibaba-dependencies
    37. 2.2.0.RELEASE
    38. pom
    39. import
    40. mysql
    41. mysql-connector-java
    42. ${mysql.version}
    43. com.alibaba
    44. druid-spring-boot-starter
    45. ${druid.verison}
    46. org.mybatis.spring.boot
    47. mybatis-spring-boot-starter
    48. ${mybatis.spring.boot.verison}
    49. org.projectlombok
    50. lombok
    51. ${lombok.version}
    52. junit
    53. junit
    54. ${junit.version}
    55. log4j
    56. log4j
    57. ${log4j.version}
    58. org.apache.maven.plugins
    59. maven-compiler-plugin
    60. 3.6.2
    61. 8
    62. 8

     2.cloud-api-commons

    2.1entities

    CommonResult

    1. package com.atguigu.springcloud.entities;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Data;
    4. import lombok.NoArgsConstructor;
    5. @Data
    6. @NoArgsConstructor
    7. @AllArgsConstructor
    8. public class CommonResult {
    9. private Integer code;
    10. private String message;
    11. private T data;
    12. public CommonResult(Integer code,String message){
    13. this(code,message,null);
    14. }
    15. }

    Payment

    1. package com.atguigu.springcloud.entities;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Data;
    4. import lombok.NoArgsConstructor;
    5. import java.io.Serializable;
    6. @Data
    7. @NoArgsConstructor
    8. @AllArgsConstructor
    9. public class Payment implements Serializable {
    10. private Long id;
    11. private String serial;
    12. }

    pom

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>cloud2024artifactId>
    7. <groupId>com.atguigu.springcloudgroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <artifactId>cloud-api-commonsartifactId>
    12. <properties>
    13. <maven.compiler.source>8maven.compiler.source>
    14. <maven.compiler.target>8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.bootgroupId>
    19. <artifactId>spring-boot-starter-webartifactId>
    20. dependency>
    21. <dependency>
    22. <groupId>org.springframework.bootgroupId>
    23. <artifactId>spring-boot-starter-actuatorartifactId>
    24. dependency>
    25. <dependency>
    26. <groupId>org.projectlombokgroupId>
    27. <artifactId>lombokartifactId>
    28. <optional>trueoptional>
    29. dependency>
    30. <dependency>
    31. <groupId>cn.hutoolgroupId>
    32. <artifactId>hutool-allartifactId>
    33. <version>5.7.19version>
    34. dependency>
    35. <dependency>
    36. <groupId>org.springframework.bootgroupId>
    37. <artifactId>spring-boot-devtoolsartifactId>
    38. <scope>runtimescope>
    39. <optional>trueoptional>
    40. dependency>
    41. dependencies>
    42. project>

     3.cloud-consumer-order80

    config

    ApplicationContextConfig

    1. package com.atguigu.springcloud;
    2. import org.springframework.boot.SpringApplication;
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;
    4. import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    5. /**
    6. * @Author: ASUS
    7. * @Date: 2024/2/27 20:40
    8. */
    9. @SpringBootApplication
    10. @EnableEurekaClient
    11. public class OrderMain80 {
    12. public static void main(String[] args) {
    13. SpringApplication.run(OrderMain80.class,args);
    14. }
    15. }

    controller

    OrderController

    1. package com.atguigu.springcloud.controller;
    2. import com.atguigu.springcloud.entities.CommonResult;
    3. import com.atguigu.springcloud.entities.Payment;
    4. import lombok.extern.slf4j.Slf4j;
    5. import org.springframework.beans.factory.annotation.Value;
    6. import org.springframework.web.bind.annotation.GetMapping;
    7. import org.springframework.web.bind.annotation.PathVariable;
    8. import org.springframework.web.bind.annotation.RestController;
    9. import org.springframework.web.client.RestTemplate;
    10. import javax.annotation.Resource;
    11. /**
    12. * @Author: ASUS
    13. * @Date: 2024/2/27 20:43
    14. */
    15. @RestController
    16. @Slf4j
    17. public class OrderController {
    18. // public static final String PAYMENT_URL = "http://localhost:8001";
    19. public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";
    20. @Resource
    21. private RestTemplate restTemplate;
    22. @GetMapping("/consumer/payment/create")
    23. public CommonResult create(Payment payment) {
    24. return restTemplate.postForObject(PAYMENT_URL + "/payment/create", payment, CommonResult.class);
    25. }
    26. @GetMapping("/consumer/payment/get/{id}")
    27. public CommonResult getPayment(@PathVariable("id") Long id) {
    28. return restTemplate.getForObject(PAYMENT_URL + "/payment/get/" + id, CommonResult.class);
    29. }
    30. }

     yml

    1. server:
    2. port: 80
    3. spring:
    4. application:
    5. name: cloud-order-service
    6. eureka:
    7. client:
    8. register-with-eureka: true
    9. fetch-registry: true
    10. service-url:
    11. # defaultZone: http://localhost:7001/eureka
    12. defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka

    pom

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>cloud2024artifactId>
    7. <groupId>com.atguigu.springcloudgroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <artifactId>cloud-consumer-order80artifactId>
    12. <properties>
    13. <maven.compiler.source>8maven.compiler.source>
    14. <maven.compiler.target>8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.cloudgroupId>
    19. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    20. <version>2.2.10.RELEASEversion>
    21. dependency>
    22. <dependency>
    23. <groupId>com.atguigu.springcloudgroupId>
    24. <artifactId>cloud-api-commonsartifactId>
    25. <version>1.0-SNAPSHOTversion>
    26. dependency>
    27. <dependency>
    28. <groupId>org.springframework.bootgroupId>
    29. <artifactId>spring-boot-starter-webartifactId>
    30. dependency>
    31. <dependency>
    32. <groupId>org.springframework.bootgroupId>
    33. <artifactId>spring-boot-starter-actuatorartifactId>
    34. dependency>
    35. <dependency>
    36. <groupId>org.projectlombokgroupId>
    37. <artifactId>lombokartifactId>
    38. <optional>trueoptional>
    39. dependency>
    40. <dependency>
    41. <groupId>org.springframework.bootgroupId>
    42. <artifactId>spring-boot-devtoolsartifactId>
    43. <scope>runtimescope>
    44. <optional>trueoptional>
    45. dependency>
    46. dependencies>
    47. project>

     4.cloud-eureka-server7001

    yml

    1. server:
    2. port: 7001
    3. eureka:
    4. instance:
    5. hostname: eureka7001.com
    6. client:
    7. register-with-eureka: false
    8. fetch-registry: false
    9. service-url:
    10. defaultZone: http://eureka7002.com:7002/eureka/

     pom

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>cloud2024artifactId>
    7. <groupId>com.atguigu.springcloudgroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <artifactId>cloud-eureka-server7001artifactId>
    12. <properties>
    13. <maven.compiler.source>8maven.compiler.source>
    14. <maven.compiler.target>8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.cloudgroupId>
    19. <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
    20. <version>2.2.10.RELEASEversion>
    21. dependency>
    22. <dependency>
    23. <groupId>com.atguigu.springcloudgroupId>
    24. <artifactId>cloud-api-commonsartifactId>
    25. <version>1.0-SNAPSHOTversion>
    26. dependency>
    27. <dependency>
    28. <groupId>org.springframework.bootgroupId>
    29. <artifactId>spring-boot-starter-webartifactId>
    30. dependency>
    31. <dependency>
    32. <groupId>org.springframework.bootgroupId>
    33. <artifactId>spring-boot-starter-actuatorartifactId>
    34. dependency>
    35. <dependency>
    36. <groupId>org.projectlombokgroupId>
    37. <artifactId>lombokartifactId>
    38. <optional>trueoptional>
    39. dependency>
    40. <dependency>
    41. <groupId>org.springframework.bootgroupId>
    42. <artifactId>spring-boot-devtoolsartifactId>
    43. <scope>runtimescope>
    44. <optional>trueoptional>
    45. dependency>
    46. dependencies>
    47. project>

    5.cloud-eureka-server7002

    yml

    1. server:
    2. port: 7002
    3. eureka:
    4. instance:
    5. hostname: eureka7002.com
    6. client:
    7. register-with-eureka: false
    8. fetch-registry: false
    9. service-url:
    10. defaultZone: http://eureka7001.com:7001/eureka/

    pom

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>cloud2024artifactId>
    7. <groupId>com.atguigu.springcloudgroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <artifactId>cloud-eureka-server7002artifactId>
    12. <properties>
    13. <maven.compiler.source>8maven.compiler.source>
    14. <maven.compiler.target>8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.cloudgroupId>
    19. <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
    20. <version>2.2.10.RELEASEversion>
    21. dependency>
    22. <dependency>
    23. <groupId>com.atguigu.springcloudgroupId>
    24. <artifactId>cloud-api-commonsartifactId>
    25. <version>1.0-SNAPSHOTversion>
    26. dependency>
    27. <dependency>
    28. <groupId>org.springframework.bootgroupId>
    29. <artifactId>spring-boot-starter-webartifactId>
    30. dependency>
    31. <dependency>
    32. <groupId>org.springframework.bootgroupId>
    33. <artifactId>spring-boot-starter-actuatorartifactId>
    34. dependency>
    35. <dependency>
    36. <groupId>org.projectlombokgroupId>
    37. <artifactId>lombokartifactId>
    38. <optional>trueoptional>
    39. dependency>
    40. <dependency>
    41. <groupId>org.springframework.bootgroupId>
    42. <artifactId>spring-boot-devtoolsartifactId>
    43. <scope>runtimescope>
    44. <optional>trueoptional>
    45. dependency>
    46. dependencies>
    47. project>

     6.cloud-provider-payment8001

    PayMain8001

    1. package com.atguigu.springcloud;
    2. import org.springframework.boot.SpringApplication;
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;
    4. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    5. import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    6. @SpringBootApplication
    7. @EnableEurekaClient
    8. @EnableDiscoveryClient
    9. public class PayMain8001 {
    10. public static void main(String[] args) {
    11. SpringApplication.run(PayMain8001.class, args);
    12. }
    13. }

    controller

    PaymentController

    1. package com.atguigu.springcloud.controller;
    2. import com.atguigu.springcloud.entities.CommonResult;
    3. import com.atguigu.springcloud.entities.Payment;
    4. import com.atguigu.springcloud.service.PaymentService;
    5. import lombok.extern.slf4j.Slf4j;
    6. import org.springframework.beans.factory.annotation.Value;
    7. import org.springframework.cloud.client.ServiceInstance;
    8. import org.springframework.cloud.client.discovery.DiscoveryClient;
    9. import org.springframework.web.bind.annotation.*;
    10. import javax.annotation.Resource;
    11. import java.util.List;
    12. @RestController
    13. @Slf4j
    14. public class PaymentController {
    15. @Resource
    16. private PaymentService paymentService;
    17. @Value("${server.port}")
    18. private String serverPort;
    19. @Resource
    20. private DiscoveryClient discoveryClient;
    21. @PostMapping(value = "/payment/create")
    22. public CommonResult create(@RequestBody Payment payment) {
    23. int result = paymentService.create(payment);
    24. log.info("******插入结果:" + result);
    25. if (result > 0) {
    26. return new CommonResult(200, "插入数据库成功,serverPort:" + serverPort, result);
    27. } else {
    28. return new CommonResult(444, "插入数据库失败", null);
    29. }
    30. }
    31. @GetMapping(value = "/payment/get/{id}")
    32. public CommonResult getPaymentById(@PathVariable("id") Long id) {
    33. Payment payment = paymentService.getPaymentById(id);
    34. log.info("******查询结果:" + payment);
    35. if (payment != null) {
    36. return new CommonResult(200, "查询成功,serverPort:" + serverPort, payment);
    37. } else {
    38. return new CommonResult(444, "没有对应纪录,查询失败,查询的id:" + id, null);
    39. }
    40. }
    41. @GetMapping(value = "/payment/discovery")
    42. public Object discovery() {
    43. List services = discoveryClient.getServices();
    44. for (String element : services) {
    45. log.info("******element:"+element);
    46. }
    47. List instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
    48. for (ServiceInstance instance : instances) {
    49. log.info(instance.getInstanceId()+"\t"+instance.getHost()+"\t"+instance.getPort()+"\t"+instance.getUri());
    50. }
    51. return this.discoveryClient;
    52. }
    53. }

    dao

    PaymentDao

    1. package com.atguigu.springcloud.dao;
    2. import com.atguigu.springcloud.entities.Payment;
    3. import org.apache.ibatis.annotations.Mapper;
    4. import org.apache.ibatis.annotations.Param;
    5. @Mapper
    6. public interface PaymentDao {
    7. public int create(Payment payment);
    8. public Payment getPaymentById(@Param("id") Long id);
    9. }

    service

    PaymentService

    1. package com.atguigu.springcloud.service;
    2. import com.atguigu.springcloud.entities.Payment;
    3. import org.apache.ibatis.annotations.Param;
    4. public interface PaymentService {
    5. public int create(Payment payment);
    6. public Payment getPaymentById(@Param("id") Long id);
    7. }

    PaymentServiceImpl

    1. package com.atguigu.springcloud.service.impl;
    2. import com.atguigu.springcloud.dao.PaymentDao;
    3. import com.atguigu.springcloud.entities.Payment;
    4. import com.atguigu.springcloud.service.PaymentService;
    5. import org.apache.ibatis.annotations.Param;
    6. import org.springframework.stereotype.Service;
    7. import javax.annotation.Resource;
    8. @Service
    9. public class PaymentServiceImpl implements PaymentService {
    10. @Resource
    11. private PaymentDao paymentDao;
    12. public int create(Payment payment) {
    13. return paymentDao.create(payment);
    14. }
    15. public Payment getPaymentById(Long id) {
    16. return paymentDao.getPaymentById(id);
    17. }
    18. }

    yml

    1. server:
    2. port: 8001
    3. spring:
    4. application:
    5. name: cloud-payment-service
    6. datasource:
    7. type: com.alibaba.druid.pool.DruidDataSource
    8. driver-class-name: com.mysql.cj.jdbc.Driver
    9. url: jdbc:mysql://localhost:3306/db2019?serverTimezone=UTC&allowMultiQueries=true
    10. username: root
    11. password: 123456
    12. mybatis:
    13. mapper-locations: classpath:mapper/*.xml
    14. type-aliases-package: com.atguigu.springcloud.entities
    15. eureka:
    16. client:
    17. register-with-eureka: true
    18. fetch-registry: true
    19. service-url:
    20. # defaultZone: http://localhost:7001/eureka
    21. defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
    22. instance:
    23. instance-id: payment8001
    24. prefer-ip-address: true

    xml

    PaymentDao.xml

    1. "1.0" encoding="UTF-8"?>
    2. mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3. <mapper namespace="com.atguigu.springcloud.dao.PaymentDao">
    4. <insert id="create" useGeneratedKeys="true" parameterType="Payment" keyProperty="id">
    5. insert into payment(serial) values(#{serial});
    6. insert>
    7. <resultMap id="BaseResultMap" type="com.atguigu.springcloud.entities.Payment">
    8. <id column="id" property="id" jdbcType="BIGINT"/>
    9. <id column="serial" property="serial" jdbcType="VARCHAR"/>
    10. resultMap>
    11. <select id="getPaymentById" parameterType="Long" resultMap="BaseResultMap">
    12. select * from payment where id = #{id};
    13. select>
    14. mapper>

     pom

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>cloud2024artifactId>
    7. <groupId>com.atguigu.springcloudgroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <artifactId>cloud-provider-payment8001artifactId>
    12. <properties>
    13. <maven.compiler.source>8maven.compiler.source>
    14. <maven.compiler.target>8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.cloudgroupId>
    19. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    20. <version>2.2.10.RELEASEversion>
    21. dependency>
    22. <dependency>
    23. <groupId>com.atguigu.springcloudgroupId>
    24. <artifactId>cloud-api-commonsartifactId>
    25. <version>1.0-SNAPSHOTversion>
    26. dependency>
    27. <dependency>
    28. <groupId>org.springframework.bootgroupId>
    29. <artifactId>spring-boot-starter-webartifactId>
    30. dependency>
    31. <dependency>
    32. <groupId>org.springframework.bootgroupId>
    33. <artifactId>spring-boot-starter-actuatorartifactId>
    34. dependency>
    35. <dependency>
    36. <groupId>org.mybatis.spring.bootgroupId>
    37. <artifactId>mybatis-spring-boot-starterartifactId>
    38. dependency>
    39. <dependency>
    40. <groupId>com.alibabagroupId>
    41. <artifactId>druid-spring-boot-starterartifactId>
    42. dependency>
    43. <dependency>
    44. <groupId>mysqlgroupId>
    45. <artifactId>mysql-connector-javaartifactId>
    46. dependency>
    47. <dependency>
    48. <groupId>org.springframework.bootgroupId>
    49. <artifactId>spring-boot-starter-jdbcartifactId>
    50. dependency>
    51. <dependency>
    52. <groupId>org.springframework.bootgroupId>
    53. <artifactId>spring-boot-devtoolsartifactId>
    54. <scope>runtimescope>
    55. <optional>trueoptional>
    56. dependency>
    57. <dependency>
    58. <groupId>org.projectlombokgroupId>
    59. <artifactId>lombokartifactId>
    60. <optional>trueoptional>
    61. dependency>
    62. <dependency>
    63. <groupId>org.springframework.bootgroupId>
    64. <artifactId>spring-boot-starter-testartifactId>
    65. <scope>testscope>
    66. dependency>
    67. dependencies>
    68. project>

     7.cloud-provider-payment8002

    PayMain8002

    1. package com.atguigu.springcloud;
    2. import org.springframework.boot.SpringApplication;
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;
    4. import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    5. @SpringBootApplication
    6. @EnableEurekaClient
    7. public class PayMain8002 {
    8. public static void main(String[] args) {
    9. SpringApplication.run(PayMain8002.class, args);
    10. }
    11. }

    controller

    PaymentController

    1. package com.atguigu.springcloud.controller;
    2. import com.atguigu.springcloud.entities.CommonResult;
    3. import com.atguigu.springcloud.entities.Payment;
    4. import com.atguigu.springcloud.service.PaymentService;
    5. import lombok.extern.slf4j.Slf4j;
    6. import org.springframework.beans.factory.annotation.Value;
    7. import org.springframework.web.bind.annotation.*;
    8. import javax.annotation.Resource;
    9. @RestController
    10. @Slf4j
    11. public class PaymentController {
    12. @Resource
    13. private PaymentService paymentService;
    14. @Value("${server.port}")
    15. private String serverPort;
    16. @PostMapping(value = "/payment/create")
    17. public CommonResult create(@RequestBody Payment payment) {
    18. int result = paymentService.create(payment);
    19. log.info("******插入结果:" + result);
    20. if (result > 0) {
    21. return new CommonResult(200, "插入数据库成功,serverPort:"+serverPort, result);
    22. } else {
    23. return new CommonResult(444, "插入数据库失败", null);
    24. }
    25. }
    26. @GetMapping(value = "/payment/get/{id}")
    27. public CommonResult getPaymentById(@PathVariable("id") Long id) {
    28. Payment payment = paymentService.getPaymentById(id);
    29. log.info("******查询结果:" + payment);
    30. if (payment != null) {
    31. return new CommonResult(200, "查询成功,serverPort:"+serverPort, payment);
    32. } else {
    33. return new CommonResult(444, "没有对应纪录,查询失败,查询的id:"+id, null);
    34. }
    35. }
    36. }

    dao

    PaymentDao

    1. package com.atguigu.springcloud.dao;
    2. import com.atguigu.springcloud.entities.Payment;
    3. import org.apache.ibatis.annotations.Mapper;
    4. import org.apache.ibatis.annotations.Param;
    5. @Mapper
    6. public interface PaymentDao {
    7. public int create(Payment payment);
    8. public Payment getPaymentById(@Param("id") Long id);
    9. }

    service

    PaymentService

    1. package com.atguigu.springcloud.service;
    2. import com.atguigu.springcloud.entities.Payment;
    3. import org.apache.ibatis.annotations.Param;
    4. public interface PaymentService {
    5. public int create(Payment payment);
    6. public Payment getPaymentById(@Param("id") Long id);
    7. }

    PaymentServiceImpl

    1. package com.atguigu.springcloud.service.impl;
    2. import com.atguigu.springcloud.dao.PaymentDao;
    3. import com.atguigu.springcloud.entities.Payment;
    4. import com.atguigu.springcloud.service.PaymentService;
    5. import org.apache.ibatis.annotations.Param;
    6. import org.springframework.stereotype.Service;
    7. import javax.annotation.Resource;
    8. @Service
    9. public class PaymentServiceImpl implements PaymentService {
    10. @Resource
    11. private PaymentDao paymentDao;
    12. public int create(Payment payment) {
    13. return paymentDao.create(payment);
    14. }
    15. public Payment getPaymentById(Long id) {
    16. return paymentDao.getPaymentById(id);
    17. }
    18. }

    yml

    1. server:
    2. port: 8002
    3. spring:
    4. application:
    5. name: cloud-payment-service
    6. datasource:
    7. type: com.alibaba.druid.pool.DruidDataSource
    8. driver-class-name: com.mysql.cj.jdbc.Driver
    9. url: jdbc:mysql://localhost:3306/db2019?serverTimezone=UTC&allowMultiQueries=true
    10. username: root
    11. password: 123456
    12. mybatis:
    13. mapper-locations: classpath:mapper/*.xml
    14. type-aliases-package: com.atguigu.springcloud.entities
    15. eureka:
    16. client:
    17. register-with-eureka: true
    18. fetch-registry: true
    19. service-url:
    20. # defaultZone: http://localhost:7001/eureka
    21. defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
    22. instance:
    23. instance-id: payment8002
    24. prefer-ip-address: true

    xml

    PaymentDao.xml

    1. "1.0" encoding="UTF-8"?>
    2. mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3. <mapper namespace="com.atguigu.springcloud.dao.PaymentDao">
    4. <insert id="create" useGeneratedKeys="true" parameterType="Payment" keyProperty="id">
    5. insert into payment(serial) values(#{serial});
    6. insert>
    7. <resultMap id="BaseResultMap" type="com.atguigu.springcloud.entities.Payment">
    8. <id column="id" property="id" jdbcType="BIGINT"/>
    9. <id column="serial" property="serial" jdbcType="VARCHAR"/>
    10. resultMap>
    11. <select id="getPaymentById" parameterType="Long" resultMap="BaseResultMap">
    12. select * from payment where id = #{id};
    13. select>
    14. mapper>

     pom

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>cloud2024artifactId>
    7. <groupId>com.atguigu.springcloudgroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <artifactId>cloud-provider-payment8002artifactId>
    12. <properties>
    13. <maven.compiler.source>8maven.compiler.source>
    14. <maven.compiler.target>8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.cloudgroupId>
    19. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    20. <version>2.2.10.RELEASEversion>
    21. dependency>
    22. <dependency>
    23. <groupId>com.atguigu.springcloudgroupId>
    24. <artifactId>cloud-api-commonsartifactId>
    25. <version>1.0-SNAPSHOTversion>
    26. dependency>
    27. <dependency>
    28. <groupId>org.springframework.bootgroupId>
    29. <artifactId>spring-boot-starter-webartifactId>
    30. dependency>
    31. <dependency>
    32. <groupId>org.springframework.bootgroupId>
    33. <artifactId>spring-boot-starter-actuatorartifactId>
    34. dependency>
    35. <dependency>
    36. <groupId>org.mybatis.spring.bootgroupId>
    37. <artifactId>mybatis-spring-boot-starterartifactId>
    38. dependency>
    39. <dependency>
    40. <groupId>com.alibabagroupId>
    41. <artifactId>druid-spring-boot-starterartifactId>
    42. dependency>
    43. <dependency>
    44. <groupId>mysqlgroupId>
    45. <artifactId>mysql-connector-javaartifactId>
    46. dependency>
    47. <dependency>
    48. <groupId>org.springframework.bootgroupId>
    49. <artifactId>spring-boot-starter-jdbcartifactId>
    50. dependency>
    51. <dependency>
    52. <groupId>org.springframework.bootgroupId>
    53. <artifactId>spring-boot-devtoolsartifactId>
    54. <scope>runtimescope>
    55. <optional>trueoptional>
    56. dependency>
    57. <dependency>
    58. <groupId>org.projectlombokgroupId>
    59. <artifactId>lombokartifactId>
    60. <optional>trueoptional>
    61. dependency>
    62. <dependency>
    63. <groupId>org.springframework.bootgroupId>
    64. <artifactId>spring-boot-starter-testartifactId>
    65. <scope>testscope>
    66. dependency>
    67. dependencies>
    68. project>

  • 相关阅读:
    Python爬虫进阶:使用Scrapy库进行数据提取和处理
    vue 注册自定义指令,对输入框输入内容过滤(区分中英文)
    动手实现深度学习(5):计算图的实现
    ABAP 报表中如何以二进制方式上传本地文件
    go 视频解码 -- 笔记
    最常用的 Linux 命令汇总
    论文精读Transformer: Attention is all you need
    共享WIFI项目新时代:代理商如何玩转下半场?
    Java中的常量管理:接口还是枚举,您如何选择?
    Vue3 使用动态组件 component
  • 原文地址:https://blog.csdn.net/weixin_52098748/article/details/136342734