最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringBoot Mongo 自增長(zhǎng)ID有序規(guī)則

 更新時(shí)間:2021年09月29日 15:39:39   作者:昵稱為空C  
本文主要介紹springboot基于mongodb有序id生成,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

概述:本文主要介紹springboot基于mongodb有序id生成,如生成工單編號(hào)GD202109290001。單機(jī)情況下效率每秒生成5000個(gè)有序ID。

實(shí)現(xiàn)方式如下

maven

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

代碼編寫

@Document
@Data
public class Incr {

    @Id
    private String id;

    private String collectionName;

    private Long incrId;
}

@Service
public class IncrService {

    @Autowired
    private MongoTemplate mongoTemplate;

    /**
     * 獲取自增ID
     * @param collectionName
     * @return
     */
    public Long getIncrId(String collectionName){
        Query query = new Query(Criteria.where("collectionName").is(collectionName));
        Update update = new Update();
        update.inc("incrId");
        FindAndModifyOptions options = FindAndModifyOptions.options();
        options.upsert(true);
        options.returnNew(true);
        Incr incr = mongoTemplate.findAndModify(query,update,options,Incr.class);
        return incr.getIncrId();
    }

}

@RestController
@RequestMapping(value = "incr")
public class IncrController {

    @Autowired
    private IncrService incrService;

    @RequestMapping(value = "test")
    public Object test(){
        long start = System.currentTimeMillis();
        List<String> aas = new ArrayList<>();
        for (int i=0;i<10000;i++){
            aas.add(i+"");
        }
        int i = 0;
        aas.parallelStream().forEach(aa -> {
            incrService.getIncrId(aa+"");
        });
        System.out.println(System.currentTimeMillis()-start);
        return true;
    }
}

到此這篇關(guān)于詳解SpringBoot Mongo 自增長(zhǎng)ID有序規(guī)則的文章就介紹到這了,更多相關(guān)SpringBoot Mongo 自增長(zhǎng)ID內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java通俗易懂系列設(shè)計(jì)模式之模板模式

    Java通俗易懂系列設(shè)計(jì)模式之模板模式

    這篇文章主要介紹了Java通俗易懂系列設(shè)計(jì)模式之模板模式,想了解設(shè)計(jì)模式的同學(xué),可以仔細(xì)看一下
    2021-04-04
  • Java驗(yàn)證碼圖片生成代碼

    Java驗(yàn)證碼圖片生成代碼

    這篇文章主要為大家詳細(xì)介紹了Java驗(yàn)證碼圖片生成代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 解決SpringBoot log4j日志沒(méi)生成的問(wèn)題

    解決SpringBoot log4j日志沒(méi)生成的問(wèn)題

    這篇文章主要介紹了解決SpringBoot log4j日志沒(méi)生成的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 一文講解如何優(yōu)雅的調(diào)試jar包

    一文講解如何優(yōu)雅的調(diào)試jar包

    在現(xiàn)實(shí)開(kāi)發(fā)過(guò)程中,現(xiàn)場(chǎng)環(huán)境永遠(yuǎn)比開(kāi)發(fā)環(huán)境復(fù)雜,下面這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅的調(diào)試jar包的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Spring超詳細(xì)講解事務(wù)和事務(wù)傳播機(jī)制

    Spring超詳細(xì)講解事務(wù)和事務(wù)傳播機(jī)制

    Spring事務(wù)的本質(zhì)就是對(duì)數(shù)據(jù)庫(kù)事務(wù)的支持,沒(méi)有數(shù)據(jù)庫(kù)事務(wù),Spring是無(wú)法提供事務(wù)功能的。Spring只提供統(tǒng)一的事務(wù)管理接口,具體實(shí)現(xiàn)都是由數(shù)據(jù)庫(kù)自己實(shí)現(xiàn)的,Spring會(huì)在事務(wù)開(kāi)始時(shí),根據(jù)當(dāng)前設(shè)置的隔離級(jí)別,調(diào)整數(shù)據(jù)庫(kù)的隔離級(jí)別,由此保持一致
    2022-06-06
  • 【MyBatis源碼全面解析】MyBatis一二級(jí)緩存介紹

    【MyBatis源碼全面解析】MyBatis一二級(jí)緩存介紹

    下面小編就為大家?guī)?lái)一篇【MyBatis源碼全面解析】MyBatis一二級(jí)緩存介紹。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 解決SpringCloud Config結(jié)合github無(wú)法讀取配置的問(wèn)題

    解決SpringCloud Config結(jié)合github無(wú)法讀取配置的問(wèn)題

    這篇文章主要介紹了解決SpringCloud Config結(jié)合github無(wú)法讀取配置的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • SpringBoot詳細(xì)列舉常用注解的說(shuō)明

    SpringBoot詳細(xì)列舉常用注解的說(shuō)明

    在開(kāi)發(fā)SpringBoot程序的過(guò)程中,有可能與其他業(yè)務(wù)系統(tǒng)進(jìn)行對(duì)接開(kāi)發(fā),獲取封裝公共的API接口等等,下面這篇文章主要給大家介紹了關(guān)于SpringBoot常見(jiàn)的注解的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java實(shí)現(xiàn)按行分割大文件

    Java實(shí)現(xiàn)按行分割大文件

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)按行分割大文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Java基礎(chǔ)之FastJson詳解

    Java基礎(chǔ)之FastJson詳解

    今天給大家復(fù)習(xí)Java基礎(chǔ)FastJson,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05

最新評(píng)論

乌兰察布市| 郴州市| 康保县| 彰武县| 合水县| 农安县| 开江县| 天水市| 武胜县| 靖远县| 霍城县| 永平县| 洛隆县| 大化| 德兴市| 东乌| 永胜县| 休宁县| 治县。| 信阳市| 宁都县| 明光市| 北海市| 林口县| 正蓝旗| 新昌县| 阿瓦提县| 乌什县| 蕲春县| 新巴尔虎右旗| 峡江县| 正蓝旗| 富民县| 宾阳县| 盘山县| 台州市| 拜城县| 武穴市| 福清市| 乌兰察布市| 左贡县|