
自我成长-CS
文章平均质量分 90
人生海海,山山而川。结合自己目前工作中使用的java技术栈搭建一个项目的结构,里面会封装一系列目前所用的到的技术(Springboot,Mariadb,Grpc, RabbitMq,Websocket,Zookeeper, Jenkins ......)。是总结亦是以后的小笔记、手册。
放生Li
所有的胜利 与征服自己比起来都是微不足道的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
14 - component-security-jwt组件的封装与集成
component-security-jwt组件的封装场景需求必要性: 任何一个产品(软件系统),在使用时所面对的用户是有级别的,比如在一个公司中会有老板,领导,员工,在同一个公司每个级别的员工用同一个系统所能对这个系统的操作是不同的,系统中的核心,保密的操作只能高级别的员工才能操作,这就要求了这个软件系统需要有权限控制。就是不同级别的员工登入系统中所能看到的菜单,按钮是不同的。场景考量 : 对于开发者而言,其实大部分涉及权限的系统的技术实现都是大同小异的,我在想我能否封装一个组件,把它做成一个通用的原创 2023-11-27 23:43:06 · 447 阅读 · 0 评论 -
12 - component-rabbitmq-starter组件封装与集成
component-rabbitmq-starter组件封装Rabbitmq :基本上所有的mq的功能都是差不多的,都是为了解决应用解耦,异步处理,流量削峰,等,基本的概念不介绍,其实原有的spring-boot-starter-amqp已经封装的很好了,但是为了项目的需要(统一交换机,队列等后缀,通统一消息体,自定义traceId,方便操作,等等)也是基于spring-boot-starter-amqp 做了进一步的封装。组件类包结构│ component-rabbitmq-starter│原创 2023-11-16 12:51:32 · 99 阅读 · 0 评论 -
11 - component-websocket-starter组件封装与集成
component-websocket-starter组件封装组件概述component-websocket-starter 组件是对 spring-boot-starter-websocket stater的封装,为实现后端资源(后端数据)发生变化后需要及时推送给页面更新显示。如进度信息(前端页面的进度条,安装进度,恢复进度等等)组件名词概述view: 视图,所对应的就是前端页面窗口,一个视图和 websocket session是 一 一 对应的,前端页面打开一个页面(view)建立起一个web原创 2023-11-12 19:52:01 · 69 阅读 · 0 评论 -
10 - component-log-starter组件封装与集成
component-log-starter组件封装功能概述component-log-starter组件 通过自定义AOP集成了线程池,MDC, 异常Wrapper等一些列的功能,在业务的接口或者实现方法上加上@LogRecord注解即可实现对该方法的入参,出参,useCase,traceId的异步输出以及方法处理后的回调等。省去在开发的过程中开发人员在每个业务方法中添加打印日志。组件类包结构component-log-starter│ pom.xml│ README.md│ 日志拦截_原创 2023-11-12 17:11:19 · 50 阅读 · 0 评论 -
1 - 项目搭建与简介
api-server, common-component ,common-protobuf ,core-server,web-bom 都是平级的根模块,每个模块块所负责的主要功能不同,并且各自的模块也有自己的子模块进一步明确其功能。├─trunk├─api-server api-server父工程,统一管理了 api 前缀的子模块版本,对外提供api访问│ ├─api-server-adapter 适配层(rest-controller,依赖 facade层)原创 2023-10-22 00:19:49 · 56 阅读 · 0 评论 -
JVM相关问题定位
从日志中已经发现oom了,日志中也有具体的oom的代码行和原因描述,但是生产环境可能日志一会很多,比如之前段时间的oom就不好查,但是我们在 jvm中的参数中配置了,当出现oom时会将堆栈信息输出到指定文件(xxx.hprof)下载地址:https://www.eclipse.org/mat/previousReleases.php。使用参考: https://zhuanlan.zhihu.com/p/585668729。下载地址:https://visualvm.github.io/原创 2024-12-13 19:45:08 · 701 阅读 · 0 评论 -
16 - component-excel组件的封装与集成
component-excel组件的封装概述所有的操作是基于 easyExcel的封装, easyExcel是一个很完美的框架了,我的封装只是为了更方便业务上的复用。其他文字上的描述话不多说。官网很详细的官网 :https://easyexcel.opensource.alibaba.com/docs/current/quickstart/readhttps://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/j原创 2023-12-09 12:13:25 · 672 阅读 · 0 评论 -
13 - Elastic-Job 集成与部分源码
默认实现 CPUUsageJobExecutorServiceHandler/***/@Override@Override参考 CPUUsageJobExecutorServiceHandler 实现一个我们自己的import org/**return 1;} /*** 就是一个标识,AbstractJobExecutorServiceHandler实现类的标识,* 当前我们是ElasticJobThreadPool,就是标识我们这个自定义实现类的。原创 2023-11-17 16:54:10 · 46 阅读 · 0 评论 -
Linux查看防火墙状态及开启关闭命令
1)查看防火墙状态:[root@centos6 ~]# service iptables status未开启状态如图2)开启防火墙:[root@centos6 ~]# service iptables start3)关闭防火墙:[root@centos6 ~]# service iptables stop4)重启防火墙:[root@centos6 ~]# service iptables restart5)永久关闭防火墙:[root@centos6 ~]# chkconfig iptab原创 2024-05-22 15:58:21 · 2480 阅读 · 1 评论 -
Linux-挂盘-分区-卸盘
注释掉之前的开机自动挂载。原创 2024-05-22 15:54:25 · 656 阅读 · 0 评论 -
Grafan-Loki
Loki是一个受普罗米修斯启发的水平可扩展、高可用的多租户日志聚合系统。洛基与普罗米修斯的不同之处在于,他专注于日志而非度量,并通过推送而非拉取来收集日志。原创 2023-12-22 14:17:23 · 443 阅读 · 0 评论 -
17 - common-pdf 工具包
common-pdf概述java导出数据的方式有很多种,这边大概做一个总结 :Itext,wkhtmltopdf,Spire.Doc,Flying Sauser,PD4ML,x-easypdf,目前使用量最多的就是Itext(Itext5 和 Itext7),Itext7也有一个高级的模块html2pdf能快速实现功能,后端的代码量最少。 wkhtmltopdf,Spire.Doc,Flying Sauser,PD4ML 可以参考:https://blog.csdn.net/weixin_43981原创 2023-12-13 18:36:32 · 664 阅读 · 0 评论 -
15 - 统一参数检验-异常处理-结果集封装-XSS攻击-screw-smart-doc
*** 自定义注解Class原创 2023-12-05 18:16:21 · 404 阅读 · 0 评论 -
9 - component-exception组件的封装与集成
小结 : 方式二明显更优化,方式一代码量更大,其次有魔法值,如果多个地方有非空判断就不好维护了,方式一统一在枚举类中维护,修改方便,其原理实现是,在HeroEnumException枚举类中实现了AssertService这个断言处理接口并重写了获取异常code和异常参数的方法,AssertService封装了共同的常用校验方法,通过。异常枚举值的异常码和描述然后抛出异常。原创 2023-11-08 23:25:16 · 93 阅读 · 0 评论 -
8 -扩展组件component-extension-starter组件的封装和集成
component-extension-starter组件的封装扩展组件其实是利用spring的扩展对策略模式的一种封装,方便处理项目中各种同一业务下有不同实现逻辑优化。减少模块间的依赖和去除代码中大量使用if else。具体的使用场景可以接下下面的集成案列。原理描述定义了一个扩展点接口ExtensionPointInterface,便于具体中业务接口继承,从而标识业务接口定义了一个注解@Extension用于修饰具体的业务实现接口类,@Extension接收业务标识,用例,具体的使用场景(就是一原创 2023-11-08 17:56:44 · 112 阅读 · 0 评论 -
7- component-threadpool 组件封装和集成
component-threadpool组件封装场景需求先简单过一下Thread Local 和InheritableThreadLocal以及TransmittableThreadLocalThreadLocal是Java提供的一个类,主要用于解决多线程访问同一个共享变量时出现的并发问题。它提供了线程的私有变量,每个线程都可以通过set()和get()方法对这个私有变量进行操作,且不会和其他线程的私有变量产生冲突。而ThreadLocal的弊端就是不能实现父子线程的数据共享,就是我希望在父线程中开辟原创 2023-11-07 18:43:07 · 69 阅读 · 0 评论 -
6 - redis conponent-redis-start 组件封装和集成
component-redis-start 组件封装组件功能介绍component-redis-start 是对 spring-boot-starter-data-redis 结合自身业务的进一步的封装,主要包含了:redis 缓存,redis锁,redis订阅发布功能,支持多redis数据源,可以配置多个redis数据源,根据yml配置的redis的redisDataSourceName与redisTemplate的bean name绑定从而实现注入redisTemplate的Bean name原创 2023-11-05 20:28:36 · 78 阅读 · 0 评论 -
5 - 集成Mariadb,数据库链接加密,读写分离
集成Mariadb数据库代码生成工具数据库的安装注意数据库的版本是 10.6.8,springboot 是 2.6.8 数据库的驱动是 8.0.29[root@localhost mariadb]# docker run -d -p 3306:3306 --privileged=true -v /fs/docker/mariadb/3306/log:/var/log/mysql -v /fs/docker/mariadb/3306/data:/var/lib/mysql -v /fs/docke原创 2023-11-03 16:35:56 · 64 阅读 · 0 评论 -
4 - Mariadb、Redis、Rabbitmq搭建
安装完成后如果无法访问rabbitmq管理页面,则查看对应的端口 5672,15672 的端口有无开放,如果没有开放端口,或者关闭防火墙后需要重启docker(systemctl restart docker) 服务才能生效。重启docker 在重启容器。将下载好的rabbitmq_delayed_message_exchange-3.9.0.ez插件上传至宿主机,然后通过docker的cp命令将插件cprabbitmq容器的内部的plugins目录下,并执行安装。原创 2023-10-31 17:13:00 · 48 阅读 · 0 评论 -
3 - gRPC 组件封装和gRPC集成springboot
gRPC 组件common-protobuf 模块是用于放置 proto 文件,和基于 proto 文件生成对应的 java代码的组件,该模块中包含两个组件 external-protobuf , internal-protobuf 和一个协议文件 proto (将所有的协议文件都放在此包下),当前 common-protobuf 模块引用 web-bom 模块,web-bom 提供了两个子模块,grpc-bom(管理了所有grpc使用到的依赖版本) 和 spring-boot-bom (管理了所有spr原创 2023-10-31 16:37:53 · 135 阅读 · 0 评论 -
2 - 封装DTO和Util组件
Common-component 组件父工程会在 Common-component下封装所有的组件,供aip-server,Core-Server 还是以后自己的项目中使用,目前规划的工程包括如下:├─common-component 组件的父工程│ ├─common-dto dto 组件,会封装 Page,Request,Response 等│ │ └─src│ │ └─main│ │ └─java│ │ └原创 2023-10-30 22:48:22 · 71 阅读 · 0 评论