diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..60253e46ccbf518908c31d266b7f4fc7fb4d45c2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+# Component
+
+> 公共组件包,对应COLA框架中的公共组件层,为快速搭建项目抽离的通用部分,以Spring-starter的形式存在,可无缝集成到以SpringBoot为主框架的项目中。
+
+## 依赖说明
+
+该组件整体基于SpringBoot的`2.3.6.RELEASE`版本
+
+```xml
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.3.6.RELEASE
+
+
+```
+
+其他依赖仅包含通用的hutool,使用版本为:`5.7.8`
+
+```xml
+
+ cn.hutool
+ hutool-all
+ 5.7.8
+
+```
+
+## 内容说明
+
+该组件内部以构件为独立单元,项目components仅作为公共父pom进行组件依赖管理。
+
+components内涵构件有:
+
+| 构件 | 说明 | 版本号 |
+| ---------------------- | --------------- | ----- |
+| es-component | ElasticSearch封装 | 1.0.0 |
+| redis-component | Redis数据操作封装 | 1.0.0 |
+| rest-component | REST风格的服务端封装 | 1.0.0 |
+| task-component | 定时任务构件 | 1.0.0 |
+| initdatabase-component | 数据库初始化构件 | 1.0.0 |
+
+## 使用方式
+
+下载对应版本的components项目源码,本地进行编译安装,install到本地的私仓中即可单独使用包内的构件
diff --git a/es-component/README.md b/es-component/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..bc80fd2cacbf62d6a9e0f9ba2f9bd4e5b4bcecde
--- /dev/null
+++ b/es-component/README.md
@@ -0,0 +1,252 @@
+# 使用说明
+
+## 1、引入依赖
+
+使用maven引入依赖:
+
+```xml
+
+ com.gcc.aribase
+ ElasticSearchServer
+ ${相关版本号}
+
+```
+
+
+
+## 2、新增yml文件配置项
+
+在yml配置文件中新增es所需的参数项:
+
+```yml
+spring:
+ elasticsearch:
+ host: 127.0.0.1
+ port: 9500
+ tcpport: 9300 #若不需要es-sql功能则可忽略该属性
+ user: elastic
+ password: ABCDEF
+ scheme: http
+ log-enable: false
+```
+
+参数说明:
+
+| 参数 | 作用 | 是否必填 |
+| ---------- | ---------------------------------------- | ----- |
+| host | es服务的ip地址 | 是 |
+| port | es服务的端口 | 是 |
+| tcpport | es的tcp服务端口,若追加该属性并进行配置,则可使用`es-sql`的功能,默认无此属性 | **否** |
+| user | 如果es服务设置了安全认证,则填写用户名,否则可不填 | 否 |
+| password | 如果es服务设置了安全认证,则填写密码,否则可不填 | 否 |
+| scheme | 默认http方式 | 否 |
+| log-enable | 是否开启dsl语句的执行记录日志,无此字段则默认是false | 否 |
+
+
+
+## 3、注入ElasticSearchActuator
+
+完成前两步后,则可在项目中直接使用 ElasticSearchActuator,如下:
+
+```java
+@Service
+public class ElasticSearchTest {
+
+ @Autowired
+ private ElasticSearchActuator elasticSearchActuator;
+
+}
+```
+
+
+
+ElasticSearchActuator推荐使用官方的SearchSourceBuilder对象进行Es数据查询,如下:
+
+```java
+@Service
+public class ElasticSearchTest {
+
+
+ private final static String INDEX_NAME = "tb_user";
+
+ @Autowired
+ private ElasticSearchActuator elasticSearchActuator;
+
+
+ public Object excuteSearchData(int pageNo,String asset_type){
+ Long startTime = DateUtil.beginOfDay(new Date()).getTime();
+ Long endTime = DateUtil.endOfDay(new Date()).getTime();
+ BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
+ boolQueryBuilder.filter().add(QueryBuilders.rangeQuery("update_time").gte(startTime).lte(endTime));
+ if(!StringUtils.isEmpty(asset_type)){
+ boolQueryBuilder.filter().add(QueryBuilders.termQuery("asset_type",asset_type));
+ }
+ SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()
+ .size(10)
+ .query(boolQueryBuilder)
+ .aggregation(AggregationBuilders.terms("uniqueKey").field("unique_key"));
+ SearchResult scrollret = elasticSearchActuator.scrollSearchElasticSearchDatas(INDEX_NAME,searchSourceBuilder,pageNo, JKEntity.class);
+ return scrollret;
+ }
+}
+
+```
+
+
+
+也可支持直接使用字符串拼写的DSL,如下:
+
+
+
+```java
+@Service
+public class ElasticSearchTest {
+
+
+ private final static String INDEX_NAME = "tb_user";
+
+ @Autowired
+ private ElasticSearchActuator elasticSearchActuator;
+
+
+ public Object searchUserInfo(){
+ String dsl = "{\n" +
+ " \"size\": 0,\n" +
+ " \"query\": {\n" +
+ " \"bool\": {\n" +
+ " \"filter\": [\n" +
+ " {\n" +
+ " \"range\": {\n" +
+ " \"update_time\": {\n" +
+ " \"from\": 1684684800000,\n" +
+ " \"to\": 1684771199999\n" +
+ " }\n" +
+ " }\n" +
+ " },\n" +
+ " {\n" +
+ " \"term\": {\n" +
+ " \"asset_type\": \"server\"\n" +
+ " }\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " },\n" +
+ " \"aggregations\": {\n" +
+ " \"userName\": {\n" +
+ " \"cardinality\": {\n" +
+ " \"field\": \"userName\"\n" +
+ " }\n" +
+ " }\n" +
+ " }\n" +
+ "}";
+ return elasticSearchActuator.executeSearchDslStr(INDEX_NAME,dsl);
+ }
+}
+```
+
+
+
+## 4、特殊方法使用说明
+
+### method: executeSearchDslStr(String indexName,String dslBodyStr)
+
+> ```java
+> /**
+> * 执行Es的dsl(默认文档类型为_doc)
+> * @param indexName 索引名称
+> * @param dslBodyStr dsl
+> * @return JSONObject
+> */
+> JSONObject executeSearchDslStr(String indexName,String dslBodyStr);
+> ```
+
+ 该方法直接执行DSL,可用字符串拼接的DSL,返回值为`JSON对象`,可自行拆解
+
+
+
+### method:executeSearchSearchSourceBuilder(String indexName, SearchSourceBuilder searchSourceBuilder,Class resultObj)
+
+> ```java
+> /**
+> * 执行Es的查询对象 SearchSourceBuilder 默认文档为_doc
+> * @param indexName 索引名称
+> * @param searchSourceBuilder 查询对象
+> * @return JSONObject
+> */
+> SearchResult executeSearchSearchSourceBuilder(String indexName, SearchSourceBuilder searchSourceBuilder,Class resultObj);
+> ```
+
+ 基于`SearchSourceBuilder` 对象的执行方法,可直接执行构建好的Es查询对象,返回值为 `SearchResult` 对象;`T` 可由参数 `resultObj` 指定,可根据文档结构定义实体传入,或直接使用Map结构
+
+
+
+### method:searchElasticSearchDatas(String indexName, SearchSourceBuilder searchSourceBuilder,Class resultObj)
+
+> ```java
+> /**
+> * 查询es
+> * @param indexName 索引名称
+> * @param searchSourceBuilder 自定义查询内容
+> * @param resultObj 目标实体对象
+> * @return SearchResult
+> */
+> SearchResult searchElasticSearchDatas(String indexName, SearchSourceBuilder searchSourceBuilder,Class resultObj);
+> ```
+
+ 基于`SearchSourceBuilder` 对象的查询方法,可直接执行构建好的Es查询对象,返回值为 `SearchResult` 对象;与 ` method:executeSearchSearchSourceBuilder` 不同的地方在于,此方法仅返回查询内容,不处理聚合结果,如`SearchSourceBuilder` 对象中包含聚合语法,则建议使用 ` method:executeSearchSearchSourceBuilder`
+
+
+
+### method:scrollSearchElasticSearchDatas(String indexName,SearchSourceBuilder searchSourceBuilder,int pageNo,Class resultObj)
+
+> ```java
+> /**
+> * 分页滚动查询
+> * @param indexName 索引名称
+> * @param searchSourceBuilder 查询条件
+> * @param pageNo 页码
+> * @param resultObj 具体目标对象
+> * @return SearchResult
+> */
+> SearchResult scrollSearchElasticSearchDatas(String indexName,SearchSourceBuilder searchSourceBuilder,int pageNo,Class resultObj);
+> ```
+
+Es的Scroll滚动分页查询,除索引和条件外,只需要传入对应的页码即可; 如不进行大范围跳页操作,使用该分页方式效果更好,如存在大范围跳页,则不建议使用该分页方式,
+
+
+
+### method:aggregateDatas(String indexName, Object searchDslStr)
+
+> ```java
+> /**
+> * 聚合es数据
+> * @param indexName 索引名称
+> * @param searchDslStr 自定义查询内容
+> * @return
+> */
+> SearchResult