随机生成生成你的订单号序列

来源:互联网 发布:java微信昵称特殊字符 编辑:程序博客网 时间:2024/05/22 01:33
首先定义一个工厂类,生成你的订单号序列。
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>