Springcloud Alibaba详细入门教程(一)

前言:

  Srpingcloud Alibaba是什么?

    Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。

  Springcloud和Srpingcloud Alibaba区别?

    SpringCloud:部分组件停止维护和更新,给开发带来不便;SpringCloud部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制;SpringCloud配置复杂,难以上手,部分配置差别难以区分和合理应用

    Srpingcloud Alibaba:阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来成套的产品搭配完善的可视化界面给开发运维带来极大的便利,搭建简单,学习曲线低。

  SpringBoot与cloud版本对应:

    Spring Cloud           Spring Boot

    Angel版本                兼容Spring Boot 1.2.x

    Brixton版本                兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x

    Camden版本                兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x

    Dalston版本、Edgware版本   兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x

    Finchley版本                兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x

    Greenwich版本            兼容Spring Boot 2.1.x

    Hoxtonl版本                兼容Spring Boot 2.2.x

一、新建maven项目cloud2020

Springcloud Alibaba详细入门教程(一)_第1张图片

Springcloud Alibaba详细入门教程(一)_第2张图片

Springcloud Alibaba详细入门教程(一)_第3张图片

Springcloud Alibaba详细入门教程(一)_第4张图片

Springcloud Alibaba详细入门教程(一)_第5张图片

Springcloud Alibaba详细入门教程(一)_第6张图片

Ctrl+Alt+S打开设置

Springcloud Alibaba详细入门教程(一)_第7张图片

Springcloud Alibaba详细入门教程(一)_第8张图片

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


    org.springframework.boot
    spring-boot-devtools
    runtime
    true

父工程加入pom组件


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                true
                true
            
        
    

Springcloud Alibaba详细入门教程(一)_第9张图片

Springcloud Alibaba详细入门教程(一)_第10张图片

配置本地maven

Springcloud Alibaba详细入门教程(一)_第11张图片

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

Springcloud Alibaba详细入门教程(一)_第12张图片

Springcloud Alibaba详细入门教程(一)_第13张图片

创建xml文件模板内容:







ctrl + shift +Alt +/

Springcloud Alibaba详细入门教程(一)_第14张图片

Springcloud Alibaba详细入门教程(一)_第15张图片

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
                
            
        
    

打开Navicat Premium新建数据cloud2020,新建表payment

Springcloud Alibaba详细入门教程(一)_第16张图片

Springcloud Alibaba详细入门教程(一)_第17张图片

  • 新建子工程cloud-proder-payment8001

Springcloud Alibaba详细入门教程(一)_第18张图片

Springcloud Alibaba详细入门教程(一)_第19张图片

Springcloud Alibaba详细入门教程(一)_第20张图片

Springcloud Alibaba详细入门教程(一)_第21张图片

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

Springcloud Alibaba详细入门教程(一)_第22张图片

创建所有目录文件

Springcloud Alibaba详细入门教程(一)_第23张图片

Springcloud Alibaba详细入门教程(一)_第24张图片

创建完毕后,添加内容

cloud-provider-payment8001.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
        
    

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别名所在包

entities下的Payment

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;
}

entities下的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);
    }
}

dao下的PaymentDao

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);
}

PaymentMapper.xml






    
         insert into payment(serial) values (#{serial});
    

    
        
        
    
    

PaymentService

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);
}

PaymentServiceImpl

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);
    }
}

PaymentController

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);
        }
    }

}

启动工程:

 

cloud-providerayment001.pSpringcloud Alibaba详细入门教程(一)_第25张图片

打开postman测试查询和新增

新增:

Springcloud Alibaba详细入门教程(一)_第26张图片

Springcloud Alibaba详细入门教程(一)_第27张图片

om

你可能感兴趣的:(Springcloud,Alibaba,Springcloud笔记,微服务,spring,cloud,spring,cloud,alibaba,微服务,分布式,spring,boot)