java
文章平均质量分 81
小时候的阳光
不断练习,不断成长,活在当下,把握美好时光。
展开
-
分别使用netty和apache.plc4x测试读取modbus协议的设备信号
Modbus 是一种通讯协议,用于在工业控制系统中进行数据通信和控制。Modbus 协议主要分为两种常用的变体:Modbus RTU 和 Modbus TCP/IPModbus RTU:Modbus RTU 是一种基于串行通信的协议。Modbus TCP/IP:Modbus TCP/IP 是一种基于 TCP/IP 网络的协议。本次使用 Netty 和 Apache PLC4X 开源适配工具库测试读取modbus报文原创 2024-06-27 16:30:24 · 1076 阅读 · 0 评论 -
SpringBoot通过加装外部JAR包中的类实现业务插件功能
Spring Boot 加载外部jar包 注册为Spring Bean,同时提供卸载功能原创 2023-06-03 17:44:09 · 1738 阅读 · 0 评论 -
动态注册和注销Spring Bean和Controller
部分场景下可能需要下载远程jar包,然后注册jar包中的Bean和Controller。原创 2023-02-07 14:18:34 · 1980 阅读 · 3 评论 -
Spring Bean 注册顺序优先级总结
Spring Bean 注册顺序注册优先级,以及初始化顺序相关总结原创 2023-02-07 12:38:08 · 9829 阅读 · 1 评论 -
Spring事务管理中异常回滚知识点总结
讨论Spring哪些场景下事务失效不回滚,讨论try cache对事务的影响,总结了Spring事务相关的知识点原创 2022-06-12 15:12:27 · 3742 阅读 · 1 评论 -
xxl-job-admin多数据库支持
xxl-job 多数据库支持原创 2022-05-04 09:59:59 · 1832 阅读 · 0 评论 -
springboot 集成的 mybatis 设置 executorType 为 batch模式
springboot 集成的 mybatis 设置 executorType 为 batch模式mybatis提供三种sql执行器,分别是SIMPLE(默认)、REUSE、BATCH。SIMPLE(SimpleExecutor),相当于JDBC的stmt.execute(sql);REUSE(ReuseExecutor),相当于JDBC重用一条sql,再通过stmt传入多项参数值,然后执行stmt.executeUpdate()或stmt.executeBatch();BATCH(B.原创 2022-02-12 22:20:40 · 12859 阅读 · 9 评论 -
flowable-bpmn2添加自定义节点属性
记录一下对flowable流程引擎创建自定义下拉框属性步骤方法目录说明添加自定义属性思路步骤找到 flowable的静态画图页面文件找到bpmnjson的数据文件修改找到bpmnjson的数据添加自定义下拉框属性类型添加自定义属性转换器获取自定义属性值说明Flowable 一款流行的bpmn2流程引擎,里面包含了绘制bpmn2的流程图工具。本次flowable 版本为 6.4.2 , 6.5开始flowable走商用路线了。6.4.2基本上满足了常用流程引擎的功能。在绘制用户任务流程图的时候,除.原创 2021-09-20 12:40:17 · 8918 阅读 · 1 评论 -
二、JAVA8学习笔记 List 转 Map 分组常用 Lambda 表达式
这里记录一下 java8开始,List 转Map分组常用Lambda表达式一、说一说 流和集合集合:好比DVD里的电影,你想快进到某一个时间点,必须等DVD慢慢读取从开始以来的全部数据流:好比流媒体中的电影,直接可以快速的跳到你想看的那一个时间点画面流只能遍历一次,集合可以遍历多次流采用内部迭代,集合采用外部迭代二、常用的List Map 转换方法现有实体类:import lombok.Data;/** * 学生实体类 * * @author guzt */@Data.原创 2021-08-12 14:57:30 · 642 阅读 · 0 评论 -
dubbo 设置注册到注册中心的IP地址为公网IP
场景某些情况下(例如公共测试环境 xx云上ECS 部署了dubbo提供者),我们需要将dubbo提供者应用 注册到注册中心的地址为公网ip地址。这样方便公司内网或者其他云上应用调用该dubbo提供者的接口服务。测试dubbo 版本 2.7.8查看 dubbo 官方文档,一开始以为 修改属性 dubbo.protocol.host # 服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig。 # 同时,如果需要支持多协议,可以声明多个原创 2021-07-23 18:52:23 · 7234 阅读 · 2 评论 -
java中的几种常见参数设置
常见的 java 参数命令行参数系统属性参数环境变量的区别命令行参数最常见的一种,main方法中获得该参数值public class MyPramTest{ public static void main(String[] args) { // - 命令行参数 System.out.println("命令行传递的参数1:" + args[0]); System.out.println("命令行传递的参数2:" + args[1]); }原创 2021-07-10 18:20:38 · 2093 阅读 · 1 评论 -
SpringBoot Elasticsearch 7.x 多条件分页查询
本文目的记录下新版本的Elasticsearch API查询使用目录why elasticsearchconcepthow use elasticsearch版本说明安装说明创建索引和映射新建Repository新建 service接口和实现类POJO 封装对象测试why elasticsearchElasticsearch 不多说了:用途广泛,社区活跃,Apache开源许可免费分布式多用户能力的全文搜索引擎可RESTful web接口,可多语言API接口它是用Java语言开发的企业级.原创 2021-04-01 11:18:10 · 6109 阅读 · 5 评论 -
Fastjson 作为Spring Boot 默认json解析器注意点
Fastjson 不多说了,有喜欢的有讨厌的,本项目选址了它,且将Fastjson作为Spring Boot 视图层的默认Json解析器。场景说明Spring boot 配置默认json解析器如下:import cn.hutool.core.date.DatePattern;import com.alibaba.fastjson.serializer.SerializeConfig;import com.alibaba.fastjson.serializer.SerializerFeature.原创 2021-01-19 18:17:09 · 737 阅读 · 0 评论 -
spring boot admin 监控实践
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序, 在线查看日志 修改日志级别等目录使用场景快速开始Spring Boot Admin 服务端Spring Boot Admin 客户端Fastjson 相关问题使用场景当下互联网技术发展很快,各类微服务程序的监控也很多,系统运行日志分布式管理的解决方案也很多 ELK 、点评的 CAT等等。但还有一些小型项目比如各内网小型系统,开发周期也很短的项目,为了这些项目搞个ELK 集群也是大费周章。调研发现.原创 2021-01-17 20:55:56 · 865 阅读 · 2 评论 -
flowable6.4 并行网关 驳回 跳转 回退 多实例加签减签
目录前言flowable6.4.2 不足之处并行网关跳转驳回BUG多实例加签减签BUG解决之法说明用法前言flowable 优秀的工作流流程引擎框架,前身Activity为什么要用工作流?主要是应对:流程可能随时变更步骤处理人可能变更并行任务处理分支任务处理驳回处理等等如果你不用类似于flowable工作流,久而久之你要么自己创建一套工作流框架,要么用flowable,这是必然发展之路。有现车的成熟工作流框架为何不用?flowable6.4.2 不足之处并行网关跳转驳回BUG原创 2020-12-16 16:37:51 · 10233 阅读 · 5 评论 -
支持springboot多环境和jvm动态配置的Dockerfile
假设springboot项目 myboot-api , 在其根目录下创建文件Dockerfile内容如下:FROM java:8MAINTAINER xxxRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeRUN echo 'Asia/Shanghai' >/etc/timezoneENV LANG=zh_CN.UTF-8 \ JVM_XMS=256m \ JVM_XMX=512m \ SPRING原创 2020-12-11 16:45:12 · 1593 阅读 · 0 评论 -
Flowable流程引擎和各类表说明
目录Flowable 五大引擎Flowable 数据库表类别Flowable 常用数据库表说明通用数据表流程定义表历史记录表用户权限表运行实例表其他表Flowable 五大引擎引擎是组成flowable框架的服务单元,每个引擎由相对应的 EngineConfiguration进行创建配置名称含义说明ProcessEngine流程引擎流程设计、发布、任务的查询和操作等DmnEngine决策引擎各决策表的配置和使用等FormEngine表单引擎动态表单的设原创 2020-11-08 10:22:17 · 2124 阅读 · 1 评论 -
覆盖重写 原有Spring Bean的几种方式
目录场景方法1 直接在自己工程中建同包同类名的类进行替换方法2 采用@Primary注解方法3 排除需要替换的jar包中的类方法4 @Bean 覆盖方法5 使用BeanDefinitionRegistryPostProcessor场景什么情况下要覆写原有的Spring Bean ? 例如引入的第三方jar包中的某个类有些问题,然有没有源码提供或者嫌编译源码太费事,这个时间可以考虑覆写原有的类。方法1 直接在自己工程中建同包同类名的类进行替换方式简单粗暴,可以直接覆盖掉jar包中的类,spring项目原创 2020-10-28 16:50:40 · 18237 阅读 · 9 评论 -
与第三方Api接口对接需要注意的点
与第三方Api接口对接需要注意的点目录一、非技术对接二、技术对接三、必要措施四、常见错误解决一、非技术对接【重要】画出流程时序图查看对方文档,积极沟通本公司接口文档和图发对方确认,一定要对方明确答复【重要】每天查看进度,不能没人管,至少本公司必须有专一团队负责人!团队成员稳定专一二、技术对接网络协议方面确认接口对接的网络协议:https/http 端口号 或 tcp 端口号 Webservice接口请求方面尽量全部约定 数据传参+响应格式为:application/jso原创 2020-09-25 10:29:25 · 7982 阅读 · 0 评论 -
SpringBoot 直接访问静态资源
一般现在都前后端分离方式,SpringBoot主要提供接口服务,但有时候有一些小项目就希望一个jar前后端都搞定,因此一些页面等静态资源都放入SpringBoot中。 这里记录一下静态资源访问方式和引入shiro后的修改。SpringBoot 默认静态资源访问配置SpringBoot 默认配置就可以直接URL访问下面路径下的静态资源 classpath:/META-INF/resources/ classpath:/resources/ classpath:/static/ classp原创 2020-09-12 18:16:13 · 4870 阅读 · 0 评论 -
基于RabbitMQ 的 Web MQTT插件进行前端消息实时推送
目录RabbitMQWhat is AMQP, MQTT, STOMP ?How to use RabbitMQ with MQTT ?1. Docker 安装RabbitMQ2. MQTT插件启用3. 查看 rabbitmq_mqtt 默认配置4. 采用JS 前端订阅发布mqtt消息5. 采用Java 订阅发布mqtt消息6. 稍作改动可切换阿里云MQTT消息队列RabbitMQ不多说了,它是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。用它解决微服务各种服务的解耦等原创 2020-09-01 15:27:06 · 7687 阅读 · 1 评论 -
JPA创建或修改数据库的表注释和字段注释
目录jpacomment-spring-boot-starter需求说明思路说明jpacomment-spring-boot-starterJPA创建或修改数据库的表注释和字段注释jpacomment-spring-boot-starter 使用非常简单,目前支持三种主流关系型数据库:MysqlSqlserverOracle后期可以增加其他数据库。GitHub 地址,使用查看README.mdhttps://github.com/dwhgygzt/jpacomment-spring-b原创 2020-08-26 17:08:50 · 7548 阅读 · 3 评论 -
Maven 打包成单个可执行jar包
一个普通java项目打包一个单个可执行jar包,有以下几个方法:Maven方式maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等java jar命令方式网上有一篇博客写的比较好,总结到位:https://www.cnblogs.com/mq0036/p/8566427.ht原创 2020-08-20 11:16:30 · 1626 阅读 · 0 评论 -
开发工程师如何写好一个方法的业务逻辑
这里记录一下和刚进入it行业的新生沟通的关于开发工程师如何写好一个方法的业务逻辑的几条 言简意赅 公司规范1. 方法或方法对应的接口必须有完备的注释方法是给别的方法或组件,甚至为外部接口调用,因此编写的方法最起码要标注每一个参数什么意思,该方法是干什么的。【源码范例】 /** * Creates a new <code>SOAPElement</code> object initialized with the * given <code&.原创 2020-08-08 18:52:34 · 1244 阅读 · 0 评论 -
Springboot整合webservice
why WebService ?目前的服务直接的接口调用一般很少采用webservice方式了,一般采用resful方式或消息队列等技术,主要是一些遗留的老项目需要对接,而老项目又只有提供webservice方式可以对接,所以不得不去了解一下webservice技术。what is WebService ?本质上它是一个为了实现不同开发语言之前的接口调用服务的一个治理框架。可查看网上一些不错的介绍文章https://www.jianshu.com/p/5bb727b434e6how to use原创 2020-07-29 11:23:17 · 583 阅读 · 0 评论 -
获取java类中的属性注释
一般我们的某个数据库表对象model,java bean对象如下:package com.xxx.message.model;import com.middol.common.model.BaseModel;import lombok.Data;import lombok.EqualsAndHashCode;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Ta原创 2020-07-08 14:21:22 · 11864 阅读 · 0 评论 -
自定义消息队列组件 mq-spring-boot-starter
这里写自定义目录标题为什么要自定义消息队列组件 mq-spring-boot-starter准备工作架构构思消息对象抽取消息订阅和发布者抽取如何使用为什么要自定义消息队列组件 mq-spring-boot-starter考虑到公司同一套系统能支持阿里云上部署和客户内网部署,业务代码不修改的情况下,只修改yml文件配置属性即可迁移。本文主要针对RocketMq 进行构建,后期增加 RabbitMq的支持。本组件源码:https://github.com/dwhgygzt/mq-spring-boot原创 2020-07-05 13:52:54 · 1450 阅读 · 0 评论 -
让一个普通类创建的对象接受 Spring 容器管理方法总结
想要让自己写的一个普通类创建的对象扔到Spring 容器中管理,有以下方法:使用 常规的注解,@Controller @Service @Repository @Component 注解标注该类,然后确保 @ComponentScan 扫描路径包含以上的类即可使用 @Bean 注解的方法里面 new 出来的对象会进入Spring容器,当然标有@Configuration 的配置类本身也会创建一个对象进入Spring容器(IOC)中的使用**@ConfigurationProperties原创 2020-06-16 11:05:04 · 1960 阅读 · 0 评论 -
Shiro +JWT 自定义spring-boot-starter
Shiro 是什么 ?不多说了,一个java 安全认证框架 ,类似于Spring-security,两者异同网上多了去,个人比较喜欢shiro ,简单易懂。JWT 是什么 ?java web token 的简称为什么要 shiro + JWT ?现在微服务架构,前后端分离架构,综合 PC、 APP 、小程序、微信等,采用一个令牌作为登录用户身份的象征,不再用原来的浏览器Session作为登录凭证。小程序 微信 等应该没有 cookie 、session概念。采用统一 jwt 一劳永逸解决所有前原创 2020-05-31 16:32:05 · 1358 阅读 · 0 评论 -
谈读书无用论
网上说: 谈读书无用论网上说:为什么读了那么多书,却依然过不好这一生网上说:上大学有什么用我说: 你真的好好读书了吗? 不要为自己的慵懒辩解和开脱 !不管上没上过大学,不管在学校学习怎么样,反正我接触过的人(老板、职场高管、小商小贩、甚至算命看手相的) 凡是有成就的人 他们都在读书。另外 网上说 不要尽信书,读死书 什么的, 试问现在物质社会还有几个真正书呆子,如果有那也是一件幸福的...原创 2020-04-21 10:38:21 · 387 阅读 · 0 评论 -
关于Spring 里面Bean的几种初始化、销毁方法(init, destroy)
常用的Spring Bean如何指定其初始化和销毁前的方法有以下几种:1. @PostConstruct @PreDestroy注解方式 @PostConstruct public void init(){ } @PreDestroy public void destroyAn(){ }2. 实现 InitializingBean 和 Dis...原创 2020-04-14 17:37:41 · 565 阅读 · 0 评论 -
Maven parent.relativePath 说明
这里日记一下 关于Maven非常基础的问题: Maven parent.relativePath 的意思,很多人网上搜索 类似下面pom.xml中的问题 ,文件中的<relativePath /> <!-- lookup parent from repository --> 是什么意思? <parent> <groupId&...原创 2020-04-01 21:16:53 · 33742 阅读 · 14 评论 -
New 采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
之前写过一篇文章,采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集 当时没有考虑到性能和 对一般对象的处理,这里做下日志说明一下:原来文章 https://blog.csdn.net/gzt19881123/article/details/78327465改进后的代码package com.wxx.webbase;import java.u...原创 2020-03-27 21:11:40 · 2947 阅读 · 10 评论 -
Nginx 正向代理和反向代理
简单小日志: 这里记录一下 总感觉有人搞不清正向代理和反向代理。nginx 正向代理使用场景客户端 (例如js程序) -------请求接口--------》 服务端(例如java应用)一般客户端和服务端不再一台服务器上,直接请求会报 跨域问题,当然解决跨域问题比较多,服务器端做跨域过滤什么的,总体还是感觉使用Nginx代理解决跨域比较好。js程序-----》nginx ————...原创 2020-03-27 16:48:00 · 340 阅读 · 1 评论 -
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Contex
简单的小日志:单元测试发现如下错误: java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test at org.spr...原创 2020-03-18 10:41:29 · 946 阅读 · 0 评论 -
整合通用mapper 清除 No MyBatis mapper was found in 警告
一般整合了 通用mapper之后,启动的时候会有一个警告信息: warn No MyBatis mapper was found in xxx 这个一般不会影响springboot的运行,但是有强迫症的人看着还是比较难受的。解决方法很简单,写一个 mapper接口让它找到就行了package com.dadi.webbase.framework.mapper;import org...原创 2020-03-14 15:50:00 · 2965 阅读 · 0 评论 -
Java将List对象列表转为树形结构
经常遇到 菜单、部门等对象列表,输出到前端的时候需要转换成树状结构,一般人都想到递归调用,个人不是很喜欢递归,重写一个简单易懂方法针对这类小需求。假设查询部门对象列表,部门对象为 SysOrg 如下:@Table(name = "t_sys_org")@Data@EqualsAndHashCode(callSuper = true)public class SysOrg extend...原创 2020-03-01 19:21:53 · 4850 阅读 · 3 评论 -
SpringBoot2.x 给Controller的RequestMapping添加统一前缀
如何给Controller的RequestMapping添加统一前缀,比如"/api",为什么要添加统一访问前缀,其实是为了后面的接口的管理。切记:约定与规范好过一切技术处理 !比如:项目A必须所有访问接口URL必须增加 /api/projectA/项目B必须所有访问接口URL必须增加 /api/projectB/看到url里面含有/api 表示访问后端接口服务,/projectA/...原创 2020-02-27 10:21:28 · 23174 阅读 · 3 评论 -
xml配置文件的xml文件头说明
这里就是做一下记录说明,防止以后忘记这些基础知识。主要知识点 命名空间命名空间用来解决 比如同一个xml文件里面,相同标签但代表不同含义的 场景问题。<config> <table> xxx <table> 这个代表表格意思 <table> bbb </table> 这个代表桌子意思</config>两个...原创 2020-02-20 22:19:07 · 2224 阅读 · 0 评论 -
JAVA 虚拟机学习整理 一、基本结构
一、JAVA虚拟机基本结构1. JAVA虚拟机的基本结构图图1.1JVM内部结构图类加载子系统:负责从文件系统或网络加载Class信息,加载的类信息存放在方法区中方法区:JDK1.6/1.7可以理解为permgen space (永久驻留区),里面还包括一些运行时的常量池信息,字符串字面值. JDK1.8开始已经没有这个概念,1.8称为”元空间”,其大小只受物理内存原创 2016-11-23 16:51:33 · 472 阅读 · 0 评论