オンライン購入システムのプロジェクト設計(コアコード)

ディレクトリファイル説明

├──README -ドクドキュメント
├──DB -データベース制約ファイル
├──mvnw 
├──mvnw.cmd 
├──のpom.xml -プロジェクトが依存
└──SRC 
    ├──メイン
    │├──のJava 
    CN││└── 
    ││└──tycoding 
    ││├──SpringbootSeckillApplication.java - SpringBootスターター
    ││├──コントローラ- MVCのWeb層
    ││├──DTO -結果の一部が統一されたパッケージ属性、および類似のエンティティ
    ││├──エンティティ-エンティティ・クラス
    ││├──列挙-手動で定義辞書列挙パラメータ
    ││├──例外-一貫した例外結果
    ││├──マッパー- MyBatisのマッパーのマッピングインターフェース層、またはDAOと呼ばれる層 
    ││├──のRedis - Redisの、jedis構成
    ││└──サービス-サービスレイヤ
    │└──リソース 
    │├──application.yml - SpringBootのコア構成
    MyBatisのマッパー層のXMLマッピングファイル- │├──マッパー
    │├──静的-ストアページ静的リソースは、ブラウザから直接アクセスすることができます
    ││├──CSS 
    ││├──JS 
    ││└──のlib 
    │└──テンプレート-テンプレートエンジンの堆積物は、Thymeleaf HTMLを必要な、直接ブラウザにアクセスすることはできません
    │ページ├── 
    │└──公共-公共のHTMLページのコンポーネント(頭、尾)
    └──テスト-テストファイル

XMLマッピング

    <更新ID = "reduceStock"> 
        UPDATE seckill 
        SET stock_count = stock_count - 1 
        WHERE seckill_id =#{seckillId} 
        AND START_TIME <=#{killTime} 
        AND END_TIME> =#{killTime} 
        AND stock_count> 0 
    </更新> 

    <IDを挿入= "insertOrder"> 
        seckill_order INTO無視INSERT(seckill_id、お金、user_phone)
        VALUES(#{seckillId}、#{お金}、{#userPhone})
    </インサート>

  

コアコード 

Redisの注入 

 Redisのキャッシュ設定

 

、高い並行性に対処するデータをロックし、データのオーバーフローを防ぐために

 スパイクし始めました 

時間とMD5の判断によるスパイクが有効であるときのスパイクをクリックするとここでは、その後、在庫のクエリを入力してください

 

おすすめ

転載: www.cnblogs.com/pawn2018/p/10927539.html