欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot集成開發(fā)實現(xiàn)商場秒殺功能

 更新時間:2019年12月25日 10:55:05   作者:一染墨清塵  
這篇文章主要介紹了springboot集成實現(xiàn)商品秒殺功能,秒殺系統(tǒng)業(yè)務(wù)流程,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

springboot集成開發(fā)實現(xiàn)商場秒殺

加入主要依賴

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- alibaba的druid數(shù)據(jù)庫連接池 -->
<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid</artifactId>
 <version>1.0.5</version>
</dependency>
<!-- redis客服端-->
<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
</dependency>
<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.38</version>
</dependency>
<dependency>
 <groupId>commons-codec</groupId>
 <artifactId>commons-codec</artifactId>
</dependency>
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
 <groupId>com.google.guava</groupId>
 <artifactId>guava</artifactId>
 <version>19.0</version>

秒殺項目主要目錄構(gòu)架

1.java目錄

config 所有的配置信息
controller
exception 所有業(yè)務(wù)異常
mapper
service
rabbitmq
redis redis緩存
validator 后端校驗
bean:數(shù)據(jù)傳輸層包括:mysql以及redis
util:工具包
dto:數(shù)據(jù)傳輸對象

秒殺系統(tǒng)邏輯

實現(xiàn)技術(shù)點

1.MD5

實現(xiàn)用戶的密碼為加密在保存到數(shù)據(jù)庫之前

2.全局異常統(tǒng)一處理

通過攔截所有異常,對各種異常進行相應的處理

3.頁面緩存

通過手動渲染的html頁面緩存到redis中

WebContext ctx = new WebContext(request, response, request.getServletContext(), request.getLocale(), model.asMap());
html = thymeleafViewResolver.getTemplateEngine().process("goods_detail", ctx);

4.解決了超買

application.properties配置
#thymeleaf
spring.thymeleaf.cache=false
spring.thymeleaf.check-template=true
spring.thymeleaf.check-template-location=true
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.enabled=true
spring.thymeleaf.encoding=utf-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
# mybatis
mybatis.type-aliases-package=com.jesper.seckill.mapper
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.default-fetch-size=100
mybatis.configuration.default-statement-timeout=3000
mybatis.mapperLocations = classpath:com/jesper/seckill/mapper/*.xml
# druid
spring.datasource.url=jdbc:mysql://localhost:3306/seckill?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.filters=stat
spring.datasource.maxActive=1000
spring.datasource.initialSize=100
spring.datasource.maxWait=60000
spring.datasource.minIdle=500
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxOpenPreparedStatements=20
#redis
redis.host=127.0.0.1
redis.port=6379
redis.timeout=10
redis.poolMaxTotal=1000
redis.poolMaxIdle=500
redis.poolMaxWait=500
#static
spring.resources.add-mappings=true
spring.resources.cache.period= 3600
spring.resources.chain.cache=true 
spring.resources.chain.enabled=true
spring.resources.chain.compressed=true
spring.resources.chain.html-application-cache=true
spring.resources.static-locations=classpath:/static/
#rabbitmq
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
spring.rabbitmq.listener.simple.concurrency= 10
spring.rabbitmq.listener.simple.max-concurrency= 10
spring.rabbitmq.listener.simple.prefetch= 1
spring.rabbitmq.listener.simple.auto-startup=true
spring.rabbitmq.listener.simple.default-requeue-rejected= true
spring.rabbitmq.template.retry.enabled=true
spring.rabbitmq.template.retry.initial-interval=1000
spring.rabbitmq.template.retry.max-attempts=3
spring.rabbitmq.template.retry.max-interval=10000
spring.rabbitmq.template.retry.multiplier=1.0

總結(jié)

以上所述是小編給大家介紹的springboot集成開發(fā)實現(xiàn)商場秒殺功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 詳解Java中三種狀態(tài)機實現(xiàn)方式來優(yōu)雅消滅 if-else 嵌套

    詳解Java中三種狀態(tài)機實現(xiàn)方式來優(yōu)雅消滅 if-else 嵌套

    這篇文章主要為大家詳細介紹了Java中三種狀態(tài)機實現(xiàn)方式從而優(yōu)雅消滅 if-else 嵌套,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-08-08
  • springboot整合quartz實例demo

    springboot整合quartz實例demo

    Quartz是一個開源的任務(wù)調(diào)度框架?;诙〞r、定期的策略來執(zhí)行任務(wù)是它的核心功能,比如x年x月的每個星期五上午8點到9點,每隔10分鐘執(zhí)行1次,本文重點給大家介紹springboot整合quartz的實例代碼,感興趣的朋友一起看看吧
    2022-02-02
  • Springboot處理跨域的實現(xiàn)方式(附Demo)

    Springboot處理跨域的實現(xiàn)方式(附Demo)

    這篇文章主要介紹了Springboot處理跨域的實現(xiàn)方式(附Demo),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java入門之集合框架詳解

    Java入門之集合框架詳解

    本文介紹了Java集合框架體系結(jié)構(gòu),包括List、Set和Map接口及其常用實現(xiàn)類,重點講解了ArrayList、LinkedList、HashSet、TreeSet和HashMap等類的使用方法,并詳細介紹了泛型的定義和作用,最后,還討論了集合的遍歷和并發(fā)修改異常處理
    2025-01-01
  • Java對數(shù)組實現(xiàn)選擇排序算法的實例詳解

    Java對數(shù)組實現(xiàn)選擇排序算法的實例詳解

    這篇文章主要介紹了Java對數(shù)組實現(xiàn)選擇排序算法的實例,選擇排序的比較次數(shù)為 O(N^2)而交換數(shù)為O(N),需要的朋友可以參考下
    2016-04-04
  • 關(guān)于Spring中Bean的創(chuàng)建進行更多方面的控制

    關(guān)于Spring中Bean的創(chuàng)建進行更多方面的控制

    今天小編就為大家分享一篇關(guān)于關(guān)于Spring中Bean的創(chuàng)建進行更多方面的控制,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 詳解Java?加密解密和數(shù)字簽名問題

    詳解Java?加密解密和數(shù)字簽名問題

    在做項目中,只要涉及敏感信息,或者對安全有一定要求的場景,都需要對數(shù)據(jù)進行加密。接下來通過本文給大家分享Java?加密解密和數(shù)字簽名問題,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • 使用mybatisplus接收mysql字段為json類型的數(shù)據(jù)方式

    使用mybatisplus接收mysql字段為json類型的數(shù)據(jù)方式

    這篇文章主要介紹了使用mybatisplus接收mysql字段為json類型的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Spring?MVC中@Controller和@RequestMapping注解使用

    Spring?MVC中@Controller和@RequestMapping注解使用

    這篇文章主要介紹了Spring?MVC中@Controller和@RequestMapping注解使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java編程中隨機數(shù)的生成方式總結(jié)

    Java編程中隨機數(shù)的生成方式總結(jié)

    在Java中利用自帶的類庫可以有三種途徑可以產(chǎn)生隨機數(shù),這里我們舉了一些簡單的例子來進行Java編程中隨機數(shù)的生成方式總結(jié),需要的朋友可以參考下
    2016-05-05

最新評論