Java
文章平均质量分 75
namelessmyth
资深Java技术经理+架构师。ToB制造行业工业软件,企业数字化经验。
爱好:热血动漫(海贼王,火影,死神),乒乓球,听音乐。
展开
-
AgilePLM发邮件
需求描述满足一定的业务场景发邮件通知相关责任人处理相关事务。邮件收件人,主题,正文最好支持可配置。实现方案一般有如下几种发邮件方案。AgileSession发邮件优点收件人,主题,正文都可以在控制台由管理员自由配置,无须额外开发配置界面。发送邮件的同时还会发送站内通知。正文支持按数据对象动态配置。不需要额外的Jar依赖和发邮件程序缺点正文配置功能不够强大,只能配置某1个数据对象的属性。无法支持多个数据对象。例如:张三可能有多个任务或流程待办,无法在一封邮件中做一个原创 2022-03-06 22:31:43 · 589 阅读 · 0 评论 -
Mybatis一对多关联查询,返回值Map,字段自动映射
Mybatis,一对多关联查询,返回值Map,字段自动映射原创 2022-08-15 00:04:04 · 3927 阅读 · 0 评论 -
Oracle in 不能超过1000的解决方案
使用过Oracle的可能都遇到过In不能超过1000的问题,SQL中超过1000会直接报错。这里分享几个方案来解决这个问题。方法一:在in里面使用select ‘固定值’ from dual + union all 的子查询。这种方法的优势是对原有业务逻辑改动最小。例如:select i.*from table1 i where field1 in ( select '1' from dual union all select '2' from dual union原创 2021-10-31 16:10:37 · 7566 阅读 · 0 评论 -
SpringBoot集成Jasypt加解密框架
需求描述开发人员不能直接连接正式环境。 项目中的所有密码配置使用密文存储。环境介绍SpringBoot 2.5.6druid-spring-boot-starter 1.2.8jasypt-spring-boot-starter 3.0.4实现步骤pom文件引入依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId>原创 2022-01-09 23:39:14 · 600 阅读 · 0 评论 -
SpringBoot集成CXF发布WebService服务
SpringBoot,CXF,Java,PLM原创 2022-12-09 13:38:09 · 859 阅读 · 0 评论 -
SpringBoot中@Async使用注意事项
Springboot,@async,线程池配置原创 2024-03-05 16:28:21 · 974 阅读 · 1 评论 -
CompletableFuture,多线程编排利器,使用说明
CompletableFuture,多线程编排利器,使用说明原创 2023-12-15 22:54:34 · 235 阅读 · 0 评论 -
java并发-线程生命周期
java并发,线程生命周期说明原创 2023-12-04 21:54:00 · 183 阅读 · 0 评论 -
Oracle物化视图使用笔记
需求描述之前一个查询使用索引优化到了6秒-10秒左右,但客户对于性能提出了更高的要求,希望我们进一步优化。由于查询业务复杂表连接数到了20张以上的表,SQL语句已经无法精简。故考虑使用物化视图来做进一步优化。物化视图优缺点优点可以显著提升查询性能。物化视图其实可以看做一种特殊的物理表,查询时不会在访问基础表而是直接访问物化视图表。可以给物化视图建立索引进一步提升性能。相对于人工建表并维护其中的数据,物化视图可以省去这部分工作量。它支持多种数据刷新方式,多种刷新触发条件。基表数据有改动自动原创 2022-01-20 15:55:10 · 925 阅读 · 0 评论 -
Mybatis源码分析-查询机制&工作原理
Mybatis,源码分析,查询机制,工作原理原创 2023-10-24 17:41:28 · 148 阅读 · 0 评论 -
SpringBoot源码分析-自动装配-实现原理
SpringBoot,源码分析,自动装配,selectImports方法没有进入的原因原创 2023-10-09 21:46:20 · 188 阅读 · 0 评论 -
Spring源码分析 事务 实现原理
Spring源码分析 事务 实现原理原创 2023-09-28 16:34:18 · 152 阅读 · 0 评论 -
Spring源码分析 循环依赖 三级缓存
Spring源码分析,循环依赖,三级缓存原创 2023-09-22 17:49:43 · 173 阅读 · 0 评论 -
Spring源码分析 Bean的生命周期
Spring源码,面试题,Bean的生命周期原创 2023-09-21 17:10:42 · 131 阅读 · 0 评论 -
Spring源码分析-扩展点-配置文件自定义标签
Spring源码分析,扩展点,在配置文件中自定义标签原创 2023-09-14 19:20:14 · 196 阅读 · 0 评论 -
Netty版-简易聊天室
通过Netty实现简易聊天室原创 2023-08-25 00:54:22 · 1219 阅读 · 0 评论 -
Java使用POI读取Excel名称管理器
使用poi读取到Excel的名称管理器中的内容原创 2023-08-04 22:59:56 · 845 阅读 · 0 评论 -
RocketMQ, Dashboard, 控制台安装
RocketMQ,Dashboard,安装,一键启动原创 2023-07-27 15:46:04 · 3573 阅读 · 1 评论 -
MQ公共特性介绍 (ActiveMQ, RabbitMQ, RocketMQ, Kafka对比)
ActiveMQ, RabbitMQ, RocketMQ, Kafka对比,MQ公共知识原创 2023-07-27 15:16:07 · 1973 阅读 · 0 评论 -
MQ, RocketMQ, 安装
rocketmq安装,windows安装,linux安装原创 2023-07-27 14:59:29 · 846 阅读 · 0 评论 -
JVM-从编译到执行-Jclasslib
jvm学习笔记,从编译到执行。原创 2023-06-30 19:42:34 · 563 阅读 · 0 评论 -
java编辑pdf,替换文本
java编辑pdf,替换文本,占位符原创 2023-05-17 11:38:18 · 3074 阅读 · 0 评论 -
设计模式-结构-桥接模式
分离抽象接口及其实现部分.桥接模式使用"对象间的关联关系"解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化.在很多情况下,桥接模式可以取代多层继承方案.多层继承方案违背了单一职责原则,复用性差,类的个数多.桥接模式很好的解决了这些问题.桥接模式提高了系统的扩展性,在两个变化维度中任意扩展一个维度都不需要修改原有系统,符合开闭原则.桥接模式的使用会增加系统的理解和设计难度,由于关联关系建立在抽象层,要求开发者一开始就要对抽象层进行设计和编程。原创 2023-03-29 22:45:52 · 381 阅读 · 0 评论 -
设计原则-合成复用原则
定义:尽量使用对象组合/聚合,而不是继承关系达到软件复用的目的。聚合has-A和组合contains-A。优点:可以使系统更加灵活,降低类与类之间的耦合度,一个雷的变化对其他类造成的影响相对较少。继承复用虽然简单,但是存在很大的缺点:(1)耦合度高,父类代码的修改会影响到子类,不利于代码的维护。(2)破坏了类的封装性,因为继承会将父类的实现细节暴露给子类,所以又叫做 “白箱” 复用。(3)限制了复用的灵活性,从父类继承来的实现是静态的,在运行期是无法改变的。原创 2023-03-28 17:51:02 · 238 阅读 · 0 评论 -
设计模式-创建-单例模式
1 ) 定义单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,此模式保证某个类在运行期间,只有一个实例对外提供服务,而这个类被称为单例类。用实际生活中的例子理解。例如,一个人一生当中只能有一个真实的身份证号,一个国家只有一个政府,类似的场景都是属于单例模式。2 ) 单例模式的作用保证一个类只有一个实例为该实例提供一个全局访问节点3 ) 单例模式结构fill:#333;stroke:1;fill:none;important;important;important;原创 2023-03-28 17:00:18 · 434 阅读 · 0 评论 -
设计模式-结构-代理模式
在软件开发中,由于一些原因,客户端不想或不能直接访问一个对象,此时可以通过一个称为"代理"的第三者来实现间接访问.该方案对应的设计模式被称为代理模式.代理模式(Proxy Design Pattern ) 原始定义是:让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许将请求提交给对象前后进行一些处理。软件开发中的代理代理模式中引入了一个新的代理对象,代理对象在客户端对象和目标对象之间起到了中介的作用,它去掉客户不能看到的内容和服务或者增加客户需要的额外的新服务.原创 2023-03-28 15:42:02 · 452 阅读 · 0 评论 -
Hutool工具库使用记录
Hutool简介和Apache Commons,Google guava类似的工具包。但是国产的,有着完善的中文文档和代码中文注释。对于英文不好的程序猿,这点特别有吸引力。还有就是本人的一贯原则就是只要国产的和国外的水平相差不大的情况下,优先支持国产。本人的使用体验是:hutool集合了Apache和guava的优点,而且不依赖第三方jar包。举个例子来说,Hutool-log会自动按下面的顺序自动识别当前项目中实际使用的日志框架: Slf4j(Logback) > Log4j > Log原创 2022-05-01 21:23:35 · 1119 阅读 · 0 评论 -
认知等级,思想境界
今天在B站看到了一个不错的视频,学到了一些关于认知的一些知识。特此记录下来分享给大家,希望也能给大家带来收获。第一层-怨妇型这个层级的人认为一切问题的根源在于环境,在于他人。买不起房子是因为房价太贵。找不到男女朋友是因为社会价值观扭曲。得不到领导赏识是因为领导问题。总之,从来不会认为自己有问题。也不会去改变自己。第二层-自我行动派这个层级的人认为一切问题的根源在于自己。没成功就是因为自己不够努力。买不起房子就是因为自己努力不够,还要继续加班提升工资。和女朋友吵架可能是原创 2022-04-03 23:56:17 · 682 阅读 · 0 评论 -
软件功能设计-checklist
以下是平时在做功能设计时一些必须要考虑的点,特此整理出来分享给大家。如有不足欢迎指出。脑图链接功能设计-CheckListhttps://www.processon.com/view/link/623726540e3e74074cf20f23Checklist表格序号 分类 检查项 说明 检查结果 检查人 检查时间 1 权限控制 读取权限 √ 张三 2022/3/20 2 新增权限 √原创 2022-03-20 21:07:40 · 1014 阅读 · 0 评论 -
mybatis返回map类型数据空值字段不显示
问题描述用MyBatis查询数据时发现如果返回值定义为Map,当某个字段为null甚至空字符时,返回值中直接没有这个字段key。解决方案参考下面的文章解决:mybatis返回map类型数据空值字段不显示(三种解决方法)_Alex的博客-CSDN博客_mybatis返回map为空字段不显示...原创 2022-03-13 20:52:17 · 2679 阅读 · 0 评论 -
异常解决:在实体引用中, 实体名称必须紧跟在 ‘&‘ 后面
问题描述使用jaxb解析xml时报错:在实体引用中, 实体名称必须紧跟在 '&' 后面。Eclipse编辑xml时也有错误提示:The entity name must immediately follow the '&' in the entity reference.原因分析在xml包含了xml定义的特殊字符“&”。解决方案将特殊字符特换成转移字符。例如:<map keyExpression="&a == 1 && b原创 2022-02-06 20:17:11 · 8438 阅读 · 0 评论 -
Git切换远程仓库,保留提交历史
需求描述将本地代码的远程仓库切换成新的地址,同时要保留老的提交记录。以便排查问题。操作步骤在网上搜了很久一直没发现很好的办法。后来才发现原来在git服务器上新建空白项目时,下方会直接给出切换远程服务器的命令。同时也会给出将未关联远程仓库的代码提交到远程仓库的办法。唉,只怪自己一直习惯于图形化界面,对git的命令生疏了。o(╯□╰)o下面给出操作步骤。在git服务器上新建一个空白项目,写好项目名和地址。如下图:下方会直接给出三组命令指引:其中最下方的就是如果当前代码目录已.原创 2021-12-25 22:48:29 · 1434 阅读 · 0 评论 -
SpringBoot引入CXF支持WebService
问题描述目前主流系统都已经支持Restful API方式,但难免也有古董系统仍然需要用到WebService。故考虑在项目中引入CXF框架来支持WebService。解决思路在POM文件中引入CXF框架 定义Webservice服务端接口、实现类、配置类 模拟客户端调用Webservice服务端接口。操作步骤pom.xml引入cxf <!-- springboot webservice 这段也可以尝试不加入 --> <depen原创 2021-12-14 10:17:25 · 1170 阅读 · 1 评论 -
EasyExcel使用笔记
官方Github地址:https://github.com/alibaba/easyexcel官方使用说明:Alibaba Easy Excel - 简单、省内存的Java解析Excel工具 | 首页使用步骤:在页面上新增导入按钮和文件选择框,代码参考: <a id="btnImport" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="selectFile()" style="float: r原创 2021-11-21 21:25:31 · 1461 阅读 · 0 评论 -
Java License 实现方案
功能目标本功能主要是为了防止软件被非正规途径获取之后,被肆意传播或无限制的使用。可限制用户的使用周期、使用主机数、使用用户数。业务流程功能设计license功能配置在配置文件中加入license的如下配置 license.check.date,授权码的时间范围,值为月份 0,不校验mac地址。即系统只需要输入一次授权码即可永久使用。 00-FF-77-BB-9F-55,部署主机的实际mac地址,代表license授权码只可以在这个mac地址的主机上使用。 windows可原创 2021-11-07 13:37:38 · 6391 阅读 · 1 评论 -
Oracle最大连接数修改
如果应用程序开启连接之后没有正常关闭连接,就会导致Oracle连接数超出最大值。从而导致数据库异常。本文主要记录了修改Oracle最大连接数的方法。建议大家改完连接数之后也要去检查代码是否有问题。因为如果真的是代码存在问题,修改连接数只是一个治标不治本的办法。操作步骤。确定数据库是否以spfile启动,如果不是需要修改以spfile启动 -- 查看数据库是否以spfile启动.show parameter spfile;-- 看到value有值代表以spfile启动NAME TYP原创 2021-10-24 22:04:46 · 11241 阅读 · 0 评论 -
OkHttp3使用笔记
项目中会使用OkHttp3来调用restful接口.步骤如下.pom文件引入依赖. <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.14.2</version> </原创 2021-10-17 09:49:25 · 496 阅读 · 0 评论 -
Spring定时任务-多线程配置
目前常见的定时任务框架有Quarts、Elastic-Job、xxl-job。但其实Spring自己也有一个定时任务的实现。不需要引入额外的Jar,使用Spring自带的注解就可以。对于单机非分布式架构用腻了quarts的不妨一试。简易使用步骤:在SpringBoot启动类上加上@EnableScheduling注解。代码参考: @SpringBootApplication@EnableTransactionManagement@EnableScheduling@MapperScan(原创 2021-10-10 23:04:10 · 3390 阅读 · 2 评论