• Springcloud Alibaba详细入门教程(一)


    一、新建maven项目

    Ctrl+Alt+S打开设置

    配置热部署:子pom文件加入依赖

    
        org.springframework.boot
        spring-boot-devtools
        runtime
        true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    父工程加入pom组件

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                    true
                
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    配置本地maven

    下载lombok插件,设置完毕后需要重启idea

    创建xml文件模板内容:

    
    
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    按********ctrl + shift +Alt +/

    pom文件内容,建议直接复制粘贴,避免出错

    
    
        4.0.0
    
        com.atguigu.springcloud
        cloud2020
        1.0-SNAPSHOT
        pom
        cloud2020
        cloud2020
    
        
        
            1.8
            UTF-8
            1.8
            1.8
            4.12
            1.2.17
            1.16.18
            8.0.18
            1.1.16
            1.3.0
        
        
        
            
                
                
                    org.springframework.boot
                    spring-boot-dependencies
                    2.2.2.RELEASE
                    pom
                    import
                
                
                
                    org.springframework.cloud
                    spring-cloud-dependencies
                    Hoxton.SR1
                    pom
                    import
                
                
                
                    com.alibaba.cloud
                    spring-cloud-alibaba-dependencies
                    2.1.0.RELEASE
                    pom
                    import
                
    
                
                    mysql
                    mysql-connector-java
                    ${mysql.version}
                
                
                    com.alibaba
                    druid
                    ${druid.version}
                
                
                    org.mybatis.spring.boot
                    mybatis-spring-boot-starter
                    ${mybatis.spring.boot.version}
                
                
                    junit
                    junit
                    ${junit.version}
                
                
                    log4j
                    log4j
                    ${log4j.version}
                
                
                    org.projectlombok
                    lombok
                    ${lombok.version}
                    true
                
            
        
    
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                    
                        true
                        true
                    
                
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100

    打开Navicat Premium新建数据库,新建表

    • 新建子工程

    创建完成,自动引向父工程

    创建所有目录文件

    创建完毕后,添加内容

    pom文件

    
    
        
            cloud2020
            com.atguigu.springcloud
            1.0-SNAPSHOT
        
        4.0.0
    
        cloud-provider-payment8001
    
        
            
                org.springframework.boot
                spring-boot-starter-web
            
            
                org.springframework.boot
                spring-boot-starter-actuator
            
            
                org.springframework.boot
                spring-boot-devtools
                runtime
                true
            
            
                org.projectlombok
                lombok
                true
            
            
                org.springframework.boot
                spring-boot-starter-test
            
            
                com.alibaba
                druid
            
            
                mysql
                mysql-connector-java
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
            
            
        	org.mybatis
        	mybatis
        	3.5.2
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    application.yml

    server:
      port: 8001
    spring:
      application:
        name: cloud-payment-service #服务名
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource  #当前数据源操作类型
        driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动包
        url: jdbc:mysql://localhost:3306/cloud2020?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
        username: root
        password: root
      devtools:
        restart:
          enabled: true #是否支持热部署
    
    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.atguigu.springcloud.entities  #所有entity别名所在包
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    entities的实体

    package com.atguigu.springcloud.entities;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.io.Serializable;
    
    @Data
    @AllArgsConstructor  // 有参构造函数
    @NoArgsConstructor //无参函数
    public class Payment implements Serializable { //为对象提供标准的序列化与反序列化操作
        private Long id;
    
        /**
         * 订单号
         */
        private String serial;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    CommonResult

    package com.atguigu.springcloud.entities;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data //lombok 自动生成getset
    @AllArgsConstructor  // 有参构造函数
    @NoArgsConstructor //无参函数
    public class CommonResult {
        private Integer code;
        private String message;
        private T     data;
    
        public CommonResult(Integer code,String message){
            this(code,message,null);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    dao层

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

    xml文件

    
    
    
    
    
        
             insert into payment(serial) values (#{serial});
        
    
        
            
            
        
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    service接口

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

    实现层

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

    controller层

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

    启动类

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

    启动工程:

    cloud-providerayment001.p

    打开postman测试查询和新增

    新增:

    om

  • 相关阅读:
    GIT开发学习——fatal: bad revision ‘7450ad67‘
    Win32-hash算法-ALG_ID详解
    找不到mfc110.dll,无法执行代码
    第16节-PhotoShop基础课程-修复工具组-去水印
    数据结构--七大排序算法(更新ing)
    【CSS3】CSS3 动画 ⑥ ( 动画属性示例 | 精灵图帧动画效果实现 )
    【项目问题】Vue2和Vue3如何使用Pinia?数据持久化?防止storage被篡改?
    Wine 8.14 开发版正式发布
    【22-23春】AI作业10-经典卷积网络
    C# ToString
  • 原文地址:https://blog.csdn.net/m0_67392273/article/details/126516173