diff --git a/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminBeanConfig.java b/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminBeanConfig.java index dae32f4..c06815a 100644 --- a/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminBeanConfig.java +++ b/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminBeanConfig.java @@ -16,16 +16,29 @@ 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()); + return new Snowflake(adminConfig.getWorkerId(), adminConfig.getDatacenterId()); } -} +} \ No newline at end of file diff --git a/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminConfig.java b/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminConfig.java index bd6bc79..eb2346c 100644 --- a/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminConfig.java +++ b/yami-shop-admin/src/main/java/com/yami/shop/admin/config/AdminConfig.java @@ -15,25 +15,36 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; - /** - * 商城配置文件 + * AdminConfig类主要用于加载和管理商城管理端相关的配置信息。 + * 通过一系列的Spring注解,它能够从指定的配置文件中读取相应属性,并将这些属性映射到类中的成员变量上,方便在整个商城管理端项目中使用这些配置数据。 + * * @author lgh */ -@Data @Component +// @Component注解将该类标记为Spring组件,意味着Spring容器在扫描时会识别这个类,并将其纳入管理范围, +// 这样就可以在其他需要使用该配置信息的地方通过依赖注入的方式获取到这个类的实例。 @PropertySource("classpath:admin.properties") +// @PropertySource注解用于指定配置属性的来源,这里明确表示配置信息将从类路径下的admin.properties文件中获取。 @ConfigurationProperties(prefix = "admin") +// @ConfigurationProperties注解的作用是把配置文件中以"admin"为前缀的属性绑定到这个类对应的成员变量上,实现配置属性的自动注入。 +@Data +// @Data是Lombok提供的注解,它会自动为类生成一系列常用的方法,包括各个成员变量的Getter和Setter方法、 +// toString方法、equals方法以及hashCode方法等,方便对类中的成员变量进行操作和访问。 public class AdminConfig { - /** - * 数据中心ID - */ - private Integer datacenterId; + /** + * 数据中心ID,在分布式系统环境下,用于唯一标识不同的数据中心。 + * 例如在一些涉及分布式ID生成(像使用Snowflake算法等情况)或者与数据中心相关的资源分配、服务调度等场景中, + * 会依靠这个数据中心ID来区分不同的数据中心,确保相关操作的准确性和唯一性。 + */ + private Integer datacenterId; - /** - * 终端ID - */ - private Integer workerId; + /** + * 终端ID,通常用于区分分布式系统中的不同工作终端或者节点。 + * 比如在分布式应用中,不同的服务器节点或者服务实例可以通过各自的终端ID来进行标识, + * 在诸如分布式任务调度、分布式ID生成(与具体终端相关联时)等场景下发挥作用,有助于精准定位和管理各个终端的相关操作。 + */ + private Integer workerId; -} +} \ No newline at end of file