java 生成订单号

办法有,有点小麻烦。 

首先定义一个工厂类,生成你的订单号序列。
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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值