
```java
/*
 * Copyright (c) 2018 - 2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.admin.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * AdminConfig类主要用于加载和管理商城管理端相关的配置信息
 * 通过一系列的Spring注解，它能够从指定的配置文件中读取相应属性，并将这些属性映射到类中的成员变量上，方便在整个商城管理端项目中使用这些配置数据
 *
 * @author lgh
 */
@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，在分布式系统环境下，用于唯一标识不同的数据中心
     * 例如在一些涉及分布式ID生成（像使用Snowflake算法等情况）或者与数据中心相关的资源分配、服务调度等场景中，
     * 会依靠这个数据中心ID来区分不同的数据中心，确保相关操作的准确性和唯一性
     */
    private Integer datacenterId;

    /**
     * 终端ID，通常用于区分分布式系统中的不同工作终端或者节点
     * 比如在分布式应用中，不同的服务器节点或者服务实例可以通过各自的终端ID来进行标识，
     * 在诸如分布式任务调度、分布式ID生成（与具体终端相关联时）等场景下发挥作用，有助于精准定位和管理各个终端的相关操作
     */
    private Integer workerId;
}
``` 