`

利用单例模式生成序列号

 
阅读更多
package com.ezubo.global.util;

import org.apache.commons.lang3.time.DateFormatUtils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**利用单例模式生成序列号 不适合分布式系统
 * Created by  on 2015-12-29.
 */
public class Generators {
    private static final String DATE_FORMAT = "yyyyMMddHHmmss";
    private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat(DATE_FORMAT);
    private static String forwardTime = "";
    private static Long no = 1l;
    private Generators(){
        super();
    }

    /**
     * 生成序列号
     * @param prefix
     * @return
     */
    public static  String getSeqNo(String prefix){
        synchronized (Generators.class){
            String pfix = prefix == null?"":prefix;
            String currentTime = SIMPLE_DATE_FORMAT.format(new Date());
            if(!currentTime.equals(forwardTime)){
                no = 1l;
            }
            String serializeNo = FormatUtil.leftpad(no++ , "00000000");
            forwardTime = currentTime;
            return pfix + currentTime + serializeNo;
        }
    }
}

 

分享到:
评论

相关推荐

    C#自动生成序列号 源码

    在C#中,我们可以利用各种数据类型和算法来创建具有特定规则的序列号。 二、C#中的随机数生成器 生成序列号的一个基本方法是使用C#的`Random`类。这个类可以生成伪随机数,但为了确保序列号的独特性,我们可以使用`...

    单例模式.pdf

    3. 在系统中,某些类只能有一个实例存在,否则会引起逻辑错误,如序列号生成器。 总的来说,单例模式是一种强大的设计模式,它在许多情况下都能提供简洁有效的解决方案,但也需要注意其可能带来的局限性和潜在问题...

    模拟生成的序列号

    在MFC中,我们可以利用其强大的控件和事件处理机制来构建用户界面,并实现序列号的生成与验证功能。 首先,我们需要设计一个序列号生成算法。常见的方法包括使用数学公式、日期、时间戳、随机数等元素,结合特定的...

    Delphi随机生成程序序列号..rar

    在Delphi中,我们可以利用内置的随机数生成函数和字符串处理函数来实现这一功能。以下是一些关键知识点: 1. **随机数生成**:在Delphi中,可以使用`Random`函数生成0到MaxInt(最大整数)之间的随机整数,或者使用...

    MyEclipse6.0自动生成序列号的方法,太简单强大了 Myeclipse序列号

    MyEclipse6.0自动生成序列号的方法,太简单强大了 Myeclipse序列号 使用方法:运行里面的这段小代码,然后输入一个用户名,就会自动打印出对应此用户名的序列号

    VB 根据用户名和产品编号生成序列号

    在VB(Visual Basic)编程环境中,生成序列号通常涉及到算法设计和数据加密技术。这个程序的目的是基于用户提供的用户名和产品编号,动态地创建唯一且不可预测的序列号,这在软件授权、验证或者追踪产品使用等方面...

    MyEclipse6.5自动生成序列号注册机源码

    MyEclipse6.5自动生成序列号注册机源码

    序列号生成器初级代码

    总的来说,这个“序列号生成器初级代码”项目展示了如何利用Qt库和MD5哈希来创建基于硬件信息的序列号,虽然有一定的局限性,但作为初学者的实践项目,它提供了一个良好的起点,让开发者能够理解如何结合硬件信息和...

    软件序列号生成小算法

    这里我们将深入探讨如何通过VC(Visual C++)实现一个基于硬盘序列号生成唯一对应序列号的算法。 首先,我们需要了解VC++。VC++是微软开发的一款强大的C++集成开发环境,支持Windows平台上的应用程序开发。利用VC++...

    数据库序列号生成器

    数据库序列号生成器是一种工具,通常用于为数据库中的记录生成唯一的标识符,这些标识符可以作为主键,确保数据的唯一性和完整性。在数据库设计中,主键是表中一个或一组字段,其值能够唯一地标识每条记录。序列号...

    根据电脑硬件信息生成唯一的序列号,绝对可用

    根据电脑硬件信息生成唯一的序列号,不依赖于任何第三方组件,包括:硬盘的卷标号、硬盘ID、CPU的序列号、网卡硬件地址、IP地址、登录用户名、计算机名、PC类型、物理内存。

    生成MyEclipse5.5序列号

    用于重新生成MyEclipse5.5序列号

    根据计算机信息生成序列号的VB源程序.rar

    VB根据计算机信息生成序列号,主要是根据C盘的序列号以及主机名称生成序列号,一般来说,C盘序列号是独有的,虽然计算机名称有可能重复,但是几率非常小,因此用这两个限制参数去生成的序列号一般来说是独立无二的,...

    C#利用网卡序列号生成软件注册码程序

    C#利用网卡序列号设计软件注册程序,将获取到的网卡信息存储到数组中,把网卡信息转换成字符串,根据随机数生成注册码,本源代码可供参考的地方有不少,虽然程序较小,但功能挺实用,如果您想把C#程序转换成商业软件...

    myeclipse序列号生成

    在IT行业中,序列号生成是软件授权管理的重要一环,特别是在商业软件中,序列号用于验证用户的身份,防止非法复制和盗版。MyEclipse是一款知名的Java集成开发环境(IDE),它提供了丰富的功能,包括代码编辑、调试、...

    一个不错的VB序列号自动生成器

    这个“一个不错的VB序列号自动生成器”是一个利用VB编写的程序,其主要功能是生成软件的序列号。序列号通常用于软件授权验证,确保用户在安装或使用软件时是合法的。 序列号自动生成器的工作原理通常是通过一套算法...

    获取CPU序列号和硬盘序列号加密生成机器码

    在给定的项目中,"获取CPU序列号和硬盘序列号加密生成机器码"是一个这样的实现。以下是对这个主题的详细阐述: 1. **CPU序列号**:每个中央处理器(CPU)都有一个唯一的序列号,类似于身份证,它由制造商在生产过程...

    RSA加密序列号生成

    vc++6.0运行环境,提供注册码生成与注册,含注册机!!

    源码:Python自动生成二维码信息序列号

    Python自动生成二维码信息序列号。 编码格式:SBD 零部件代码 + 控制盒序列号 + 控制盒厂家 例如:[)>06P725-18428S24031410001ZJL SBD 零部件代码:[)>06P725-1842 控制盒序列号:S24031410001 (格式:年月日(S...

    eclipse序列号生成器

    【标题】"eclipse序列号生成器"涉及的是软件授权和Eclipse集成开发环境(IDE)的相关知识。Eclipse是一款开源、跨平台的Java IDE,广泛用于Java应用程序的开发,同时也支持其他编程语言如C++、Python等。然而,这里...

Global site tag (gtag.js) - Google Analytics