# d7c_plugins **Repository Path**: d7c/d7c_plugins ## Basic Information - **Project Name**: d7c_plugins - **Description**: d7c_plugins 项目是基于 Spring 4.3.x 开发的插件集,致力于提供各种工具、服务 API 的简洁调用方式。 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: http://www.d7c.top/ - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-12-05 - **Last Updated**: 2024-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # d7c_plugins ## 介绍 d7c_plugins 项目是基于 Spring 4.3.x 开发的插件集,致力于提供各种工具、服务 API 的简洁调用方式。 ## 软件架构 d7c_plugins 主框架是 Spring 4.3.x,主要是对各种工具、服务 API 进行封装,如需运维文档请前往 [d7c_docs](https://item.taobao.com/item.htm?ft=t&id=637839200595)。 ## 安装教程 1. 克隆项目到本地 2. 导入开发工具,获取 [开发工具](https://pan.baidu.com/s/1bNUzfSV7d-kQdXC5tkl-FA),提取码:7777 3. 根据需要运行 src/test/java 包下的程序测试类 ## 模块介绍 ### 1. d7c_plugins_core 该模块是 d7c_plugins 插件集的核心类库,主要提供容器类、持久层基础类库、枚举类工具类、异常处理类、处理器扫描类、接收页面数据及返回页面数据等核心类。 ### 2. d7c_plugins_dbs 该模块主要提供了利用 mybatis 拦截器实现查询自动分页功能和对一主二从数据源的支持。 ### 3. d7c_plugins_tools 该模块是一个重要的工具类模块,提供的工具类包括验证码生成、日期处理、文档处理、文件处理、主键序列号生成器、安全工具类等众多工具类。 ### 4. d7c_plugins_net 该模块主要提供了一些网络操作工具类,主要有 HttpServletRequest 数据获取和解析、IP 获取、Mac 地址获取、Cookie 操作等工具类,最重要的是对 HTTP 请求进行了深度封装,一个实体类即可完成各种请求和响应。 ``` /** * @Title: execute * @author: 吴佳隆 * @data: 2019年7月14日 下午6:44:13 * @Description: 执行请求 * @param request 请求参数设置 * @return CloseableHttpResponse 响应结果 */ public static CloseableHttpResponse http(HttpRequestConfig request) { return new HttpRequestHandler().execute(request); } /** * @Title: executeBy * @author: 吴佳隆 * @data: 2019年7月18日 上午9:26:23 * @Description: 执行请求并封装响应结果 * @param request 请求参数设置 * @return PageResult */ public static PageResult byHttp(HttpRequestConfig request) { return new HttpRequestHandler().executeBy(request); } /** * @Title: HTTP * @author: 吴佳隆 * @data: 2019年7月14日 下午6:48:18 * @Description: HTTP 请求 * @param request * @return List */ public static List callBackHttp(HttpRequestConfig request) { HttpResponseConfig responseConfig = new HttpRequestHandler().executeByCallBack(request); if (responseConfig == null) { return null; } return responseConfig.getResults(); } ``` ### 5. d7c_plugins_netty 该模块主要提供了使 netty 对 HTTP、RPC、Websocket 请求更加简便的集成,并封装了 session 容器和拦截器等功能。 ### 6. d7c_plugins_ehcache 该模块主要是对 ehcache 缓存技术操作的封装。 ### 7. d7c_plugins_memcached 该模块主要是对 memcached 缓存技术操作的封装,包括同步操作方法和异步操作方法。 ### 8. d7c_plugins_redis 该模块主要是对 redis 缓存技术操作的封装,支持集群模式,同时提供了一些 redisson 操作 redis 的示例代码。 ### 9. d7c_plugins_vsftpd 该模块主要提供了对小型文件服务器软件 vsftpd 操作的封装。 ### 10. d7c_plugins_fastDFS 该模块主要提供了对大、中型分布式文件系统 fastDFS 操作的封装。 ### 11. d7c_plugins_lucene 该模块主要提供了对 lucene 全文检索引擎工具包的封装,使其能够更加方便的配置、同时提供了中文分词和分页操作等实用方法。 ``` package top.d7c.plugins.lucene.tests; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.Resource; import org.apache.lucene.index.Term; import org.junit.Test; import top.d7c.plugins.core.Page; import top.d7c.plugins.core.SearchPageData; import top.d7c.plugins.lucene.BaseTest; import top.d7c.plugins.lucene.LuceneConstant; import top.d7c.plugins.lucene.LuceneService; import top.d7c.plugins.lucene.client.FSLuceneClient; import top.d7c.plugins.lucene.parser.Parser; import top.d7c.plugins.lucene.parser.term.TermParserPageData; import top.d7c.plugins.lucene.query.DefaultQueryWrap; public class LuceneTest extends BaseTest { @Resource(name = "luceneServiceImpl") private LuceneService luceneService; @Test public void testGetLuceneDao() { FSLuceneClient luceneClient = luceneService.getLuceneClient(); System.out.println(luceneClient); } @Test public void testCreateIndex() throws IOException { Boolean createIndex = luceneService.createIndex("E:\\吴佳隆\\IT天地\\Java 技术文档\\Java 笔记"); System.out.println(createIndex); } @Test public void testDeleteIndex() { Parser parser = new TermParserPageData<>(new DefaultQueryWrap<>()); SearchPageData pageData = new SearchPageData(); pageData.put("url", "E:\\吴佳隆\\IT天地\\Java 技术文档\\Java 笔记\\JavaScript笔记.doc"); parser.setF(pageData); Boolean deleteIndex = luceneService.deleteIndex(parser.F2T()); System.out.println(deleteIndex); } @Test public void testDeleteAllIndex() { Boolean deleteAllIndex = luceneService.deleteAllIndex(); System.out.println(deleteAllIndex); } @Test public void testListPage() { SearchPageData pageData = new SearchPageData(); pageData.put("currentPage", 2); pageData.put("pageSize", 3); pageData.put(LuceneConstant.KEY_QUERY_FIELDS, "filename"); pageData.put(LuceneConstant.KEY_QUERY_VALUES, "笔记"); Page page = new Page(pageData); List listPage = luceneService.listPage(page, new DefaultQueryWrap<>()); if (listPage != null) { for (SearchPageData lucenePageData : listPage) { System.out.println(lucenePageData.get("filename")); /*@SuppressWarnings("unchecked") Set> sets = lucenePageData.entrySet(); for (Map.Entry entry : sets) { System.out.println(entry.getKey() + ":" + entry.getValue()); }*/ } } } @Test public void testGetByKey() { SearchPageData pageData = new SearchPageData(); pageData.put("filename", "笔记"); SearchPageData pd = luceneService.getByKey(pageData); if (pd == null) { return; } Set> sets = pd.entrySet(); for (Map.Entry entry : sets) { System.out.println(entry.getKey() + ":" + entry.getValue()); } } @Test public void testMergeIndex() { Boolean mergeIndex = luceneService.mergeIndex(7); System.out.println(mergeIndex); } } ``` ### 12. d7c_plugins_solr 该模块主要提供了对 solr 企业搜索平台操作的封装。 ### 13. d7c_plugins_elasticsearch 该模块主要提供了对 elasticsearch 分布式搜索和分析引擎操作的封装。 ### 14. d7c_plugins_ali 该模块主要提供了对阿里云支付、认证等 API 接口的封装,同时加入了一个服务配置多个账号的可能。 ### 15. d7c_plugins_weixin 该模块主要提供了对微信支付、认证等 API 接口的封装,同时加入了一个服务配置多个账号的可能。 ### 16. d7c_plugins_activemq 该模块主要提供了一些操作 activemq 的示例代码。 ### 17. d7c_plugins_rocketmq 该模块主要提供了一些操作 rocketmq 的示例代码。 ### 18. d7c_plugins_mongodb 该模块主要提供了对 mongodb 操作的封装,同时使操作支持事务。 ### 19. d7c_plugins_zookeeper 该模块主要提供了对 zookeeper 操作的封装,包括原生操作方式和 curator 操作方式,还提供了大量实用的使用 watcher、锁等技术的示例。 ### 20. d7c_plugins_config 该模块被称之为基于 zookeeper 的服务配置中心,拥有上传服务配置、下载服务配置和操作服务配置等 API。 ``` 1、上传服务配置 @Test public void uploading() { boolean uploading = ConfigUtil.uploading("classpath:config/config.properties"); System.out.println(uploading); } 2、下载服务配置 @Test public void download() throws IOException { PropertiesLoader loader = new PropertiesLoader("classpath:config/config.properties"); WatcherDownloadCuratorServiceImpl serviceImpl = new WatcherDownloadCuratorServiceImpl(new CuratorInfo(loader)); Properties properties = (Properties) serviceImpl.execute(new ConfigProperties(loader)); properties.forEach((k, v) -> { System.out.println(k + " : " + v); }); // 让服务处于阻塞状态 System.in.read(); } // 应用配置方式 // 服务启动方式(支持不同环境不同配置) java -DconfigResource=/d7c/web/config -Dspring.profiles.active=dev -jar ./xxx.jar 3、操作服务配置 package top.d7c.plugins.config.tests; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import top.d7c.plugins.config.ConfigProperties; import top.d7c.plugins.config.api.ConfigApiService; import top.d7c.plugins.config.api.ConfigApiServiceImpl; import top.d7c.plugins.config.watcher.PropertiesItem; import top.d7c.plugins.core.PageResult; import top.d7c.plugins.core.PropertiesLoader; import top.d7c.plugins.zookeeper.CuratorInfo; public class ConfigApiServiceTest { /** * 配置中心操作服务实现 */ private ConfigApiService configApiService; private PageResult result; @Before public void before() { PropertiesLoader loader = new PropertiesLoader("classpath:config/config.properties"); CuratorInfo curatorInfo = new CuratorInfo(loader); ConfigProperties config = new ConfigProperties(loader); configApiService = new ConfigApiServiceImpl(curatorInfo, config); } @Test public void insert() { PropertiesItem item = new PropertiesItem(); item.setNodePath("aaa/testinsert"); item.setValue("insertvale"); result = configApiService.insert(item); } @Test public void insertBatch() { List list = new ArrayList(); for (int i = 0; i < 10; i++) { PropertiesItem item = new PropertiesItem(); item.setNodePath("k" + i); item.setValue("v" + i); list.add(item); } result = configApiService.insertBatch("batch", list); } @Test public void delete() { result = configApiService.delete("/aaa"); } @Test public void update() { PropertiesItem item = new PropertiesItem(); item.setNodePath("aaa/testinsert"); item.setValue("xxxxxx"); result = configApiService.update(item); } @Test public void getPropertiesBy() { result = configApiService.getPropertiesBy("aaa/testinsert"); } @Test public void listBy() { result = configApiService.listBy("batch"); } @After public void after() { if (result != null) { System.out.println(result.toString()); } } } ``` ## 捐助打赏 如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡。 ![微信收款码](https://images.gitee.com/uploads/images/2021/0222/174352_b22739f5_1070311.jpeg "微信收款码.jpg") ![微信赞赏码](https://images.gitee.com/uploads/images/2021/0222/174521_67e18b39_1070311.jpeg "微信赞赏码.jpg") ![支付宝收款码](https://images.gitee.com/uploads/images/2021/0222/174540_94a9ac41_1070311.jpeg "支付宝收款码.jpg") ## 参与贡献 1. Fork 本仓库 2. 新建 d7c_plugins_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)