|
|
|
@ -41,4 +41,51 @@ public class AdminBeanConfig {
|
|
|
|
|
public Snowflake snowflake() {
|
|
|
|
|
return new Snowflake(adminConfig.getWorkerId(), adminConfig.getDatacenterId());
|
|
|
|
|
}
|
|
|
|
|
}加注释
|
|
|
|
|
以下是添加注释后的代码:
|
|
|
|
|
|
|
|
|
|
java
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2018 - 2999 广州市蓝海创新科技有限公司 All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* https://www.mall4j.com/
|
|
|
|
|
*
|
|
|
|
|
* 未经允许,不可做商业用途!
|
|
|
|
|
*
|
|
|
|
|
* 版权所有,侵权必究!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package com.yami.shop.admin.config;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.lang.Snowflake;
|
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* AdminBeanConfig类是Spring框架中的一个配置类,主要用于配置相关的Bean,以便在Spring应用上下文环境中进行管理和使用
|
|
|
|
|
* 该类通过特定的注解和方法来创建并配置特定的Bean实例,满足项目中对于分布式唯一ID生成等相关功能的需求
|
|
|
|
|
*
|
|
|
|
|
* @author lanhai
|
|
|
|
|
*/
|
|
|
|
|
@Configuration
|
|
|
|
|
// @Configuration注解表明这个类是一个配置类,Spring会扫描到这个类,并根据其中定义的Bean配置方法来创建和管理相应的Bean对象
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
// @AllArgsConstructor注解会为这个类生成一个包含所有参数的构造函数,方便依赖注入操作,在这里用于注入AdminConfig实例
|
|
|
|
|
public class AdminBeanConfig {
|
|
|
|
|
|
|
|
|
|
// 通过构造函数注入AdminConfig实例,AdminConfig应该是包含了相关配置信息的类,此处用于获取创建Snowflake实例所需的参数
|
|
|
|
|
private final AdminConfig adminConfig;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* snowflake方法用于创建并向Spring容器中注册一个Snowflake类型的Bean
|
|
|
|
|
* Snowflake是一种常用的分布式唯一ID生成器,在分布式系统中用于生成全局唯一的标识符
|
|
|
|
|
* 此方法利用从AdminConfig中获取的workerId和datacenterId参数来实例化Snowflake对象,从而保证生成的ID在分布式环境下的唯一性
|
|
|
|
|
*
|
|
|
|
|
* @return 返回一个配置好的Snowflake实例,该实例会被Spring容器管理,其他需要生成分布式唯一ID的组件可以通过依赖注入的方式获取并使用它
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public Snowflake snowflake() {
|
|
|
|
|
return new Snowflake(adminConfig.getWorkerId(), adminConfig.getDatacenterId());
|
|
|
|
|
}
|
|
|
|
|
}
|