• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • springcloud筆記01重要_支付模塊、lombok使用、IDEA打開文件顯示多行

    標簽: springcloud  spring

    manven工程要發布一些包給別的工程共用時,可以先clean,后install發布到倉庫
    在這里插入圖片描述
    注意Maven中dependencyManagement和dependencies的區別:dependencyManagement并沒有引入jar
    在這里插入圖片描述

    支付模塊

    訂單模塊調用支付模塊(微服務提供者)
    在這里插入圖片描述

    記住:約定 》 配置 》 編碼

    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    改POM和寫Yml一般都不自己寫,
    但是application.yml中建議有微服務端口號和服務名稱

    建表

    CREATE TABLE payment (
     id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
     SERIAL VARCHAR(200) DEFAULT '',
     PRIMARY KEY(id)
    ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
    

    lombok使用

    引入包

    <dependency>
    
              <groupId>org.projectlombok</groupId>
    
              <artifactId>lombok</artifactId>
    
              <version>x.x.x</version>
    
              <scope>provided</scope>
    
        </dependency>
    
    

    安裝lombok插件
    在這里插入圖片描述
    開啟注解支持
    在這里插入圖片描述
    Lombok的scope=provided,說明它只在編譯階段生效,不需要打入包中。事實正是如此,Lombok在編譯期將帶Lombok注解的Java文件正確編譯為完整的Class文件。

    常用注解:
    @Setter :注解在類或字段,注解在類時為所有字段生成setter方法,注解在字段上時只為該字段生成setter方法。
    @Getter :使用方法同上,區別在于生成的是getter方法。
    @ToString :注解在類,添加toString方法。
    @EqualsAndHashCode: 注解在類,生成hashCode和equals方法。
    @NoArgsConstructor: 注解在類,生成無參的構造方法。
    @RequiredArgsConstructor: 注解在類,為類中需要特殊處理的字段生成構造方法,比如final和被@NonNull注解的字段。
    @AllArgsConstructor: 注解在類,生成包含類中所有字段的構造方法。
    @Data: 注解在類,生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法。
    @Slf4j: 注解在類,生成log變量,嚴格意義來說是常量。

    IDEA打開文件顯示多行

    在這里插入圖片描述
    在這里插入圖片描述

    啟動微服務,查詢時報錯

    Invalid bound statement (not found): com.atguigu.springcloud.dao.PaymentDao.getPaymentById
    是dao映射出現問題,修改yml
    在這里插入圖片描述
    完整yml

    server:
      port: 8001
    
    #凡是微服務,建議一定要有端口號和微服務名稱
    spring:
      application:
        name:cloud-payment-service
      datasource:
          type: com.alibaba.druid.pool.DruidDataSource   # 當前數據源操作類型
          driver-class-name: org.gjt.mm.mysql.Driver
          url: jdbc:mysql://localhost:3306/db2020?useUnicode=true&characterEncoding=utf-8&useSSL=false  # mysql5.7后進行了安全加固
          username: root
          password: root
    
    
    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.atguigu.springcloud.entities # 所有Entity別名類所在包
    

    插入報錯

    在這里插入圖片描述
    在這里插入圖片描述
    但是我明明是post請求,
    在這里插入圖片描述
    這是因為瀏覽器大多對post請求支持度不好,

    1、對于插入數據庫的操作,一般用postman模擬

    在這里插入圖片描述

    2、既然是要把數據傳給前端妹子,那么你自己要先測試通過

    總結一下:

    微服務cloud父工程注意:提前把字符編碼改好
    在這里插入圖片描述
    pom文件依賴導入

    接著是子模塊:
    1、建module
    2、改pom,導入需要的依賴
    3、寫yml,注意最好把端口,服務名都寫好,
    4、主啟動類
    5、業務類:業務類從建表開始,創建實體可以使用lombok減少重復代碼,還要有一個json封裝體,用于給前端妹子傳json串

    /**
     * Json封裝體,方便前后端分離,不跟前端講業務邏輯,只傳給他CommonResult
     * 按照約定去判斷編碼是否成功,成功則進行后續顯示。
     *
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class CommonResult<T> {
    
        private Integer code; //消息的數字編碼,類似404
        private String message; //給前端的消息,成功或者失敗
        private T      data;  //使用泛型,保證類的通用性,任何消息都可以發送
    
        public CommonResult(Integer code, String message){
            this(code, message, null);
        }
    }
    

    dao層,接口注解使用@Mapper,因為用的是mybatis,所以盡量用這個mapper注解,使用Repository可能插入數據有問題
    映射文件注意事項

    <?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="com.atguigu.springcloud.dao.PaymentDao">
        <!--mybatis數據插入成功,必然會返回來一個數字,如果大于0則插入成功,所以新增方法我們都會返回int,使用useGeneratedKeys="true"返回這個key,
        keyProperty="id"表示返回實體類中的id屬性-->
        <insert id="create" parameterType="Payment" useGeneratedKeys="true" keyProperty="id">
            insert into payment(serial) values(#{serial});
        </insert>
    
        <resultMap id="BaseResultMap" type="com.atguigu.springcloud.entities.Payment">
            <!--jdbcType="BIGINT"指定數據表中類型-->
            <id column="id" property="id" jdbcType="BIGINT"/>
            <result column="serial" property="serial" jdbcType="VARCHAR"/>
        </resultMap>
        <!--返回類型最好用resultMap,避免其他人編寫不規范而導致映射的麻煩-->
        <select id="getPaymentById" parameterType="Long" resultMap="BaseResultMap">
            select * from payment where id=#{id};
        </select>
    
    </mapper>
    

    控制層注意事項:

    @RestController
    @Slf4j   //打印日志信息
    public class PaymentController {
    
        @Resource
        private PaymentService paymentService;
    
        //因為要做前后端分離,所以我們給前端傳的是json串,所以返回CommonResult對象
        //使用restFul風格,寫操作用post
        // 現在做的是微服務的提供者,真正操作數據庫的,所以寫明確,做到望文生義,
        //實體payment,操作create
        @PostMapping(value = "/payment/create")
        public CommonResult create(Payment payment) {
            //返回的result大于0表示插入成功
            int result = paymentService.create(payment);
            //在企業里,使用日志來打印信息
            log.info("*****插入結果:" + result);
    
            if (result > 0) {
                //插入成功給前端妹子發信息
                return new CommonResult(200, "插入數據庫成功", result);
            } else {
                return new CommonResult(444, "插入數據庫失敗", null);
            }
        }
    
        //讀操作,使用getMapping
        @GetMapping(value = "/payment/get/{id}")
        public CommonResult create(@PathVariable("id") Long id) {
            //返回的result大于0表示插入成功
            Payment payment = paymentService.getPaymentById(id);
            //在企業里,使用日志來打印信息
            log.info("*****查詢結果:" + payment);
    
            if (payment != null) {
                //插入成功給前端妹子發信息
                return new CommonResult(200, "查詢成功", payment);
            } else {
                return new CommonResult(444, "沒有對應記錄,查詢ID:"+id, null);
            }
        }
    
    }
    
    版權聲明:本文為TimEcho原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/TimEcho/article/details/106956028

    智能推薦

    IDEA-使用lombok

    目錄   1.maven項目引入lombok 2.IDEA下載lombok插件 3.IDEA設置使用第三方注解 4.項目設置使用lombok 5.使用lombok注解 1.maven項目引入lombok pom.xml中引入 2.IDEA下載lombok插件 File->Settings->Plugins->Marketplace,查找lombok,點擊Install,...

    IDEA中使用lombok

    lombok偷懶工具,功能是只用一條注解就能代替我們實現實體類中所有的無參構造、get set方法、toString、hashcode等方法。 安裝插件,在setting中搜索lombok安裝第一個 來到maven工廠搜索lombok 引入一個版本的坐標 來到實體類,刪除之前我們自己編寫的getset等方法,在方法上加一個@Data注解 方法會自動生成,繼續運行同樣無誤 但是只有@Data注解沒有...

    LomBok使用(idea)

    Springboot項目中的LomBok使用 LomBok簡化代碼編寫,就是可以用注解代替你javaBean中的Getter,Setter等啥啥啥的重復書寫,但LomBok并不是工具類或是什么的api,它只是,ide編譯器的一個插件,唔,我也不知道我想說明啥,聽聽就完了 1. 在pom文件中引入依賴坐標 如果是spring項目自己加上版本 2. 安裝LomBok插件 File->settin...

    idea 使用lombok 問題

    描述: 1.已確認使用gradle導包成功,可以看到依賴,編寫代碼時可正常使用@Getter @Setter 導包方式:官網推薦方式:https://projectlombok.org/setup/gradle 2.idea lombok插件已安裝,且未禁用 3.已確認使用javac編譯 4.已確認開啟:允許注解    5.已嘗試lombok jar包與lombok插件降低版本...

    IDEA使用Lombok教程

    IDEA使用Lombok教程 下載安裝插件 添加依賴 測試 下載安裝插件 一、我們要使用lombok首先要安裝 lombok插件 file->setting->plugin 在搜索框中輸入lombok回車既可搜索到,點擊installed根據提示安裝既可 添加依賴 測試 新創建一個類,添加lombok注解 各個注解介紹 @Data:加在類上,相當于同時使用了@ToString、@Equ...

    猜你喜歡

    idea使用lombok插件

    1. 添加lombok插件 2. pom依賴 3. 設置一下idea的配置...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡