如何在spring项目中使用雪花id

200 阅读1分钟

包引入

注:引入包的github是github.com/yitter/IdGe…

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
	<dependency>
		<groupId>com.github.yitter</groupId>
		<artifactId>yitter-idgenerator</artifactId>
		<version>1.0.6</version>
	</dependency>
</dependencies>

创建bean


@Component
public class SnowflakeHelper {

    @Value("${uniqueWorkerId}")
    private Short uniqueWorkerId;

    @PostConstruct
    public void init() {
        IdGeneratorOptions options = new IdGeneratorOptions(uniqueWorkerId);
        YitIdHelper.setIdGenerator(options);
    }

    public Long nextId() {
        return YitIdHelper.nextId();
    }
}

在controller上加上雪花id


@RestController
public class SnowflakeController {

    @Autowired
    SnowflakeHelper snowflakeHelper;

    @RequestMapping("/test")
    public String Test() {
        Long nextId = snowflakeHelper.nextId();
        System.out.println(nextId);
        return "ok";
    }
}

application.properties中添加对应文件

image.png

启动后发现雪花id已生效

image.png