国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

第一個java后端項目總結(jié)

Hwg / 1878人閱讀

摘要:項目環(huán)境用于發(fā)送請求測試項目介紹這是一個商城項目,本來想起名叫項目,發(fā)現(xiàn)自己并沒有用。也是自己第一篇博客,記錄一下自己的學(xué)習(xí)過程,希望一方面能多做寫項目鍛煉能力,另一方面也讓自己在做完之后寫寫博客自己總結(jié)反思。

1.項目環(huán)境

IDEA15 spring4 mybatis3.4 mysql RestLet Client用于發(fā)送請求測試

2.項目介紹
這是一個商城項目,本來想起名叫SSM項目,發(fā)現(xiàn)自己并沒有用springmvc。
前端還在做,使用nodejs。也是自己第一篇博客,記錄一下自己的學(xué)習(xí)過程,希望一方面能多做寫項目鍛煉能力,另一方面也讓自己在做完之后寫寫博客自己總結(jié)反思。   
3.功能模塊

用戶模塊

管理員模塊(用戶管理和訂單管理)

商品模塊

購物車模塊

訂單管理模塊

4.部分代碼記錄

規(guī)范化返回值

規(guī)范化了Controller的返回值,便于前端的使用,定義了統(tǒng)一的json序列化返回值ServiceResponse類

這樣在controller中的返回值就可以這樣寫

這樣,通過前端后端共同約定好一個json格式,可以大大加快開發(fā)的速度。

通用工具類封裝

我們在開發(fā)過程中經(jīng)常會遇到配置問價文件的讀取,時間類型字符和字符串之間的轉(zhuǎn)換,在商業(yè)項目中金額的計算的處理等等。尤其是在計算金額的時候發(fā)生精度丟失的問題,例如

    public void fun()  {
        System.out.println(0.05+0.01);
        System.out.println(1.0-0.42);
        System.out.println(4.012*100);
        System.out.println(3.3/10.0);
    }
0.060000000000000005
0.5800000000000001
401.19999999999993
0.32999999999999996

這種問題就會造成用戶下單時的錯誤,這種錯誤在商家一方一定是無法承受的。
所幸java給我們提供了一種解決方案,就是使用String的BigDecimal構(gòu)造器,一定是使用String類型的,如果使用double類型構(gòu)造器會造成更大的誤差。BigDecimal在用String做入?yún)⒌臅r候,能夠正確地把字符串轉(zhuǎn)化成真正精確的浮點數(shù),如果入?yún)⑹瞧渌愋停敲磿{(diào)用Object.toString方法進行轉(zhuǎn)化之后進行輸出。而Double.toString會使用一定的精度來四舍五入double,然后再輸出。

    public static BigDecimal add(double v1, double v2) {
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.add(b2);
    } 

Po和Vo

Po:Persistent Object 持久化對象,可以理解為與數(shù)據(jù)庫字段一一對應(yīng)的對象
Vo:Value Object 值對象,用于在業(yè)務(wù)之間傳遞的對象,例如在用戶創(chuàng)建訂單的時候,創(chuàng)建一個OrderVo對象,將訂單信息,購物車信息,收貨地址信息,用戶信息封裝在一起會更方便。如果直接使用Order PO, Cart Po,User Po這些持久對象,在封裝json傳遞給前端會造成很多麻煩。

封裝常量
將常量封裝起來使用會使整個項目看起來更整潔,提高復(fù)用性

對于普通常量:

public static final String EMAIL = "email";

對于一個對象的多個狀態(tài):

    public interface Cart {
        int CHECKED = 1;//購物車選中
        int UNCHECKED = 0;//
        String LIMIT_NUM_FAIL = "LIMIT NUM FAIL";
        String LIMIT_NUM_SUCCESS = "LIMIT NUM SUCCESS";
    }

對于一個對象某個狀態(tài)需要多個字段:

    public enum OrderStatusEnum {
        CANCELED(0, "取消"),
        NO_PAY(10, "未支付"),
        PAID(20, "已付款"),
        SHIPPED(40, "已發(fā)貨"),
        ORDER_SUCCESS(50, "訂單完成"),
        ORDER_CLOSE(60, "訂單關(guān)閉");
        public static OrderStatusEnum codeof(int code) {
            for (OrderStatusEnum orderStatusEnum : values()) {
                if (orderStatusEnum.getCode() == code) {
                    return orderStatusEnum;
                }
            }
            throw new RuntimeException("沒有找到對應(yīng)枚舉");
        }
        OrderStatusEnum(int code, String value) {
            this.code = code;
            this.value = value;
        }
        private String value;
        private int code;
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
        public int getCode() {
            return code;
        }
        public void setCode(int code) {
            this.code = code;
        }
    }
規(guī)劃

最后在規(guī)劃一下自己接下來的學(xué)習(xí)路線吧,還是以java開發(fā)為主,并關(guān)注一些node的發(fā)展狀況。還是要多做幾個SSM、SSH的項目,看看spring的源碼,然后是springboot,就先這樣吧。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70416.html

相關(guān)文章

  • Java 初學(xué)者做的一個微信小程序總結(jié)--關(guān)于Java基礎(chǔ)

    摘要:官方資料微信公眾平臺注冊小程序。官網(wǎng)開發(fā)文檔社區(qū)開發(fā)工具部署微信小程序微信小程序本身不需要部署,在微信開發(fā)工具中直接上傳代碼就行。 為什么 學(xué)習(xí) Java 三年,目前已經(jīng)工作了2年,因為自學(xué),基礎(chǔ)差,所以打算年末總結(jié)一下常見的基礎(chǔ)知識和面試點; 也可以通過獨立做一個項目整合自己工作期間學(xué)習(xí)的知識,加深印象。 但是想著回家或是平時手機用的多,做一款A(yù)PP和小程序很方便查看。 項目展示 本...

    mudiyouyou 評論0 收藏0
  • 類的加載機制 - 收藏集 - 掘金

    摘要:是現(xiàn)在廣泛流行的代從開始學(xué)習(xí)系列之向提交代碼掘金讀完本文大概需要分鐘。為了進行高效的垃圾回收,虛擬機把堆內(nèi)存劃分成新生代老年代和永久代中無永久代,使用實現(xiàn)三塊區(qū)域。 React Native 開源項目 - 仿美團客戶端 (Android、iOS 雙適配) - Android - 掘金推薦 React Native 學(xué)習(xí)好項目,仿照美團客戶端... 極簡 GitHub 上手教程 - 工具...

    Gilbertat 評論0 收藏0
  • 后端知識- 收藏集 - 掘金

    摘要:常見的八大排序算法,他們之間關(guān)系如下被人忽視的面向?qū)ο蟮牧笤瓌t后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規(guī)劃。 Java多線程干貨系列—(四)volatile關(guān)鍵字| 掘金技術(shù)征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關(guān)鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關(guān)鍵字,volatile這個關(guān)鍵字可能...

    Youngdze 評論0 收藏0
  • 后端知識- 收藏集 - 掘金

    摘要:常見的八大排序算法,他們之間關(guān)系如下被人忽視的面向?qū)ο蟮牧笤瓌t后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規(guī)劃。 Java多線程干貨系列—(四)volatile關(guān)鍵字| 掘金技術(shù)征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關(guān)鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關(guān)鍵字,volatile這個關(guān)鍵字可能...

    scola666 評論0 收藏0

發(fā)表評論

0條評論

Hwg

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<