五,Eureka 第五章

5.3.2 修改pom添加依赖

复制代码
<dependencies>
        <!--公共部门-->
        <dependency>
            <groupId>cn.bdqn</groupId>
            <artifactId>springcloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>

        <!--eureka client-->    
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        
        <!--actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <!--连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>

        <!--mysql连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

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

        <!--热驱动-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

5.3.3编写yml

复制代码
server:
  port: 8003

spring:
  application:
    name: springcloud-payment-provider-service
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/springcloud_db?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT
    username: root
    password: xiaoduo456new


mybatis:
  type-aliases-package: cn.bdqn.domain
  mapper-locations: classpath:mapper/*.xml

eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true
    register-width-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true 单节点无所谓,集群必须设置true 才能配合ribbon  使用负载均衡
    fetch-registry: true
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka,
                   http://eureka7002:com:7002/eureka,
                   http://eureka7003:com:7003/eureka,

    instances:
      prefer-ip-address: true  #使用ip地址注册

5.3.4编写启动类

复制代码
@SpringBootApplication
@EnableEurekaClient
public class Payment8003Application {
    public static void main(String[] args) {
        SpringApplication.run(Payment8003Application.class, args);
    }
}

5.3.5编写paymentMapper接口

复制代码
public interface PaymentServer {

    //保存一个支付流水
    public void save(Payment payment);
    //根据id获取具体的支付信息
    public Payment selectById(Integer id);
}

5.3.6编写映射文件

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "--//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bdqn.Mapper.PaymentMapper">
    <resultMap id="PaymentResultMap" type="cn.bdqn.domain.Payment">
        <id column="id" property="id"></id>
        <id column="flow_number" property="flowNumber"></id>
    </resultMap>
    <insert id="insert" parameterType="cn.bdqn.Mapper.PaymentMapper">
        insert into t_payment(flow_number)values(#{flowNumber})
    </insert>
    <select id="selectById" resultMap="PaymentResultMap">
        SELECT id,flow_number from t_payment where  id="#{id}"
    </select>
</mapper>

5.3.6编写Payment业务接口以及实现类型

复制代码
public interface PaymentServer {

    //保存一个支付流水
    public void save(Payment payment);
    //根据id获取具体的支付信息
    public Payment selectById(Integer id);
}


@Service
public class PaymentServerImpl implements PaymentServer {

    @Autowired
    private PaymentMapper paymentMapper;

    @Override
    public void save(Payment payment) {
        paymentMapper.insert(payment);
    }

    @Override
    public Payment selectById(Integer id) {
        return paymentMapper.QueryById(id);
    }
}

5.3.8编写paymentController控制器

复制代码
@RestController
@EnableEurekaClient
public class PaymentController {

    @Autowired
    private PaymentServer paymentServer;

    @GetMapping("/payment/save")
    public ResponseResult save(Payment payment){
        try {
            paymentServer.save(payment);
            return  new ResponseResult(200,"插入成功",null);
        }catch (Exception e){
            e.printStackTrace();
            return  new ResponseResult(404,"插入失败",null);
        }
    }

    @PostMapping("/payment/id/{id}")
    public ResponseResult selectById(@RequestBody Integer id) {
        Payment payment = paymentServer.selectById(id);
        if (payment != null) {
            return new ResponseResult(200, "成功", payment);
        } else {
            return new ResponseResult(200, "失败", null);
        }
    }
}
相关推荐
静谧之心24 分钟前
在 K8s 上可靠运行 PD 分离推理:RBG 的设计与实现
云原生·容器·golang·kubernetes·开源·pd分离
Serverless 社区37 分钟前
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
人工智能·阿里云·云原生·serverless·云计算
小马爱打代码1 小时前
zookeeper:一致性原理和算法
分布式·zookeeper·云原生
开始学AI5 小时前
【Docker技术】docker-compose.yml与Dockerfile解析
java·docker·eureka
Serverless社区21 小时前
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
阿里云·云原生·serverless·函数计算
一叶飘零_sweeeet1 天前
从 0 到 1 掌控云原生部署:Java 项目的 Docker 容器化与 K8s 集群实战指南
docker·云原生·kubernetes·项目部署
码路工人1 天前
附录B:kubectl 命令速查表 - Kubernetes 集群管理必备指南
docker·云原生·容器
码路工人1 天前
附录A:常用 Docker 命令速查表
docker·云原生·容器
罗技1232 天前
不用每次都改 `easysearch.yml` 也能改启动参数 —— 用 Docker 环境变量搞定一切
docker·容器·eureka
你好龙卷风!!!2 天前
SpringCloud,vue3应用使用AlibabaCloudToolkit自动化部署到远程服务器上的docker
云原生·自动化