分享

怎样生成唯一订单号

 再生资源保存站 2014-07-24
首先定义一个工厂类,生成你的订单号序列。
Java code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package bean;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.beans.factory.FactoryBean;
public class SequenceFactoryBean implements FactoryBean<String> {
    private static long counter = 0;
     
    public synchronized String getObject() throws Exception {
        String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + " + ";
        String sequ = new DecimalFormat("00000000").format(counter ++);
        return date + sequ;
    }
    public Class<String> getObjectType() {
        return String.class;
    }
    public boolean isSingleton() {
        return false;
    }
    public static void reset() {
        SequenceFactoryBean.counter = 0;
    }
}


注意里面的静态方法 reset方法, 这个用来在每天00:00:00重置。
这个方法由任务调度框架Quartz调用。

首先定义一个job
Java code
1
2
3
4
5
6
7
8
9
10
package job;
import bean.SequenceFactoryBean;
public class SequenceResetJob {
    public void execute() {
        SequenceFactoryBean.reset();
    }
}


配置Quartz,在每天零点触发触发器就可以了。 

Spring 的配置文件。 
XML/HTML code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<bean id="sequence" class="bean.SequenceFactoryBean" />
<bean id="job" class="job.SequenceResetJob" />
<bean id="jobDetail"
    class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="job" />
    <property name="targetMethod" value="execute" />
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="jobDetail" />
    <property name="cronExpression" value="0 0 0 * * ?" />
</bean>
<bean name="quartzScheduler"
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="cronTrigger" />
        </list>
    </property>
</bean>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多