admin管理员组文章数量:1026989
java雪花
java工具类
1.IdGeneratorSnowflake.java用于生成雪花算法,分为有参构造和无参构造
package com.sale.utilmon;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.NetUtil;
import cn.hutool.core.util.IdUtil;
import lombok.Data;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* @author wjn
* @version 1.0
* @date 2020/12/10 18:13
*/
@Slf4j
@Component
public class IdGeneratorSnowflake {
private long workerId =0;
private long datacenterId=1;
private Snowflake snowflake= IdUtil.createSnowflake(workerId,datacenterId);
@PostConstruct
public void init(){
try {
workerId = NetUtil.ipv4ToLong(NetUtil.getLocalhostStr());
log.info("当前机器的workerId:{}",workerId);
}catch (Exception e){
e.printStackTrace();
log.info("当前机器的workerId获取失败",e);
workerId=NetUtil.getLocalhostStr().hashCode();
}
}
public synchronized long snowflakeId(){
return snowflake.nextId();
}
public synchronized long snowflakeId(long workerId,long datacenterId){
Snowflake snowflake= IdUtil.createSnowflake(workerId,datacenterId);
return snowflake.nextId();
}
public static void main(String[] args) {
System.out.println(new IdGeneratorSnowflake().snowflakeId());
}
}
2.service层
public interface DeliverGoodsService {
String getIDBySnowFlake();
}
3.serviceimpl层
@Slf4j
@Service
@Transactional
public class DeliverGoodsServiceImpl implements DeliverGoodsService {
@Autowired
private IdGeneratorSnowflake idGeneratorSnowflake;
@Override
public String getIDBySnowFlake() {
ExecutorService executorService= Executors.newFixedThreadPool(5);
for (int i=1;i<=20;i++){
executorService.submit(()->{
System.out.println(idGeneratorSnowflake.snowflakeId());
});
}
executorService.shutdown();
return "hello snowflake";
}
}
项目设计的工具类
cn.hutool
hutool-all
5.5.2
java工具类库包含时间戳生成,图片工具类,加密工具类,ip工具类等一系列工具类,非常强大
github开源地址 /
哔哩哔哩springcloudalibaba上硅谷视频视频 =search&seid=13488436241056256401上硅谷github地址sql及脑图
java雪花
java工具类
1.IdGeneratorSnowflake.java用于生成雪花算法,分为有参构造和无参构造
package com.sale.utilmon;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.NetUtil;
import cn.hutool.core.util.IdUtil;
import lombok.Data;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* @author wjn
* @version 1.0
* @date 2020/12/10 18:13
*/
@Slf4j
@Component
public class IdGeneratorSnowflake {
private long workerId =0;
private long datacenterId=1;
private Snowflake snowflake= IdUtil.createSnowflake(workerId,datacenterId);
@PostConstruct
public void init(){
try {
workerId = NetUtil.ipv4ToLong(NetUtil.getLocalhostStr());
log.info("当前机器的workerId:{}",workerId);
}catch (Exception e){
e.printStackTrace();
log.info("当前机器的workerId获取失败",e);
workerId=NetUtil.getLocalhostStr().hashCode();
}
}
public synchronized long snowflakeId(){
return snowflake.nextId();
}
public synchronized long snowflakeId(long workerId,long datacenterId){
Snowflake snowflake= IdUtil.createSnowflake(workerId,datacenterId);
return snowflake.nextId();
}
public static void main(String[] args) {
System.out.println(new IdGeneratorSnowflake().snowflakeId());
}
}
2.service层
public interface DeliverGoodsService {
String getIDBySnowFlake();
}
3.serviceimpl层
@Slf4j
@Service
@Transactional
public class DeliverGoodsServiceImpl implements DeliverGoodsService {
@Autowired
private IdGeneratorSnowflake idGeneratorSnowflake;
@Override
public String getIDBySnowFlake() {
ExecutorService executorService= Executors.newFixedThreadPool(5);
for (int i=1;i<=20;i++){
executorService.submit(()->{
System.out.println(idGeneratorSnowflake.snowflakeId());
});
}
executorService.shutdown();
return "hello snowflake";
}
}
项目设计的工具类
cn.hutool
hutool-all
5.5.2
java工具类库包含时间戳生成,图片工具类,加密工具类,ip工具类等一系列工具类,非常强大
github开源地址 /
哔哩哔哩springcloudalibaba上硅谷视频视频 =search&seid=13488436241056256401上硅谷github地址sql及脑图
本文标签: java雪花
版权声明:本文标题:java雪花 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694642523a254419.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论