java

RestTemplate Get请求实现bean参数传递详解

2022-11-14
目录 项目场景 问题描述 原因分析 解决方案 项目场景 Spring 的 RestTemplate 是一个健壮的.流行的基于 Java 的 Http客户端. RestTemplate实现request param参数传送,如果如下所示,直接传一个map对象,调试之后是不会接收到参数的 Map<String,Object> param = new HashMap<String,Object>(); param.put("since",10); restTempla

Java使用pdfbox实现给pdf文件加图片水印

2022-11-14
目录 引入依赖 代码 效果 引入依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.27</version> </dependency> 代码 调节参数:图片宽高,旋转角度,几行几列 等等 package sjp.demo.workutils.utils; import

Java8中方便又实用的Map函数总结

2022-11-13
目录 简介 computeIfAbsent函数 computeIfPresent函数 compute函数 merge函数 putIfAbsent函数 forEach函数 总结 简介 java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,一起来看看吧. computeIfAbsent函数 比如,很多时候我们需要对数据进行分组,变成Map<Integer, List<?>>的形式,在java8之前,一般如下实现: List<

Java中注解与原理分析详解

2022-11-13
目录 一.注解基础 二.注解原理 三.常用注解 1.JDK注解 2.Lombok注解 四.自定义注解 1.同步控制 2.类型引擎 一.注解基础 注解即标注与解析,在Java的代码工程中,注解的使用几乎是无处不在,甚至多到被忽视: 无论是在JDK源码或者框架组件,都在使用注解能力完成各种识别和解析动作:在对系统功能封装时,也会依赖注解能力简化各种逻辑的重复实现: 基础接口 在Annotation的源码注释中有说明:所有的注解类型都需要继承该公共接口,本质上看注解是接口,但是代码并没有显式声明继承关

SpringBoot动态定时功能实现方案详解

2022-11-13
目录 业务场景 环境准备 实现方案 归纳总结 业务场景 基于上篇程序,做了一版动态定时程序,然后发现这个定时程序需要在下次执行的时候会加载新的时间,所以如果改了定时程序不能马上触发,所以想到一种方法,在保存定时程序的时候将cron表达式传过去,然后触发定时程序,下面看看怎么实现 环境准备 开发环境 JDK 1.8 SpringBoot2.2.1 Maven 3.2+ 开发工具 IntelliJ IDEA smartGit Navicat15 实现方案 基于上一版进行改进: 先根据选择的星期生成c

MyBatis映射关系详解

2022-11-13
目录 数据库的配置 一.映射关系一对一 1.映射关系 1 对 1-基本介绍 2.映射关系 1 对 1-映射方式 3.应用实例 3.1方式一 方式二: 通过配置 XxxMapper.xml 的方式来实现下面的 1 对 1 的映射关系,实现级 联查询 , 通过 person 可以获取到对应的 identcard 信息 重点解析: 注解的方式实现 通过注解的方式来实现下面的 1 对 1 的映射关系,实现级联查询 , 通过 person 可以获取到 对应的 identcard 信息 在实际开发中还是 推

Bloc事件流是一个阻塞队列结论解析

2022-11-12
前言 在Flutter中有state的概念,我们使用Bloc进行状态管理,通过Bloc.addEvent的方式进行事件传递,状态变更.关于Bloc的基础用法,可以查阅Bloc官网相关资料,这里我们仅记录一下Bloc的队列等待. 新建一个Bloc类 class TestBloc extends Bloc<TestEvent, TestState> { TestBloc() : super(new TestState()); @override Stream<TestState> ma

SpringBoot整合阿里 Druid 数据源的实例详解

2022-11-12
目录 1. 在容器中注册 DruidDataSource 数据源. 2. Druid 数据源各种属性配置方法 3. 开启Druid的内置监控页面 4. 打开 Druid 监控统计功能 5. 配置Web和Spring关联监控 6. 配置防火墙: 7. 给监控页加入账号密码 前言:今年是我的第二个 1024 了 ,和我一起大声说出来,技术宅改变世界!!! 本节主要介绍的是:SpringBoot 整合阿里 Druid 数据源手动配置方法 1. 在容器中注册 DruidDataSource 数据源. 编

Flowable&nbsp;设置流程变量的四种方式详解

2022-11-11
目录 引言 1. 为什么需要流程变量 2. 流程变量的分类 3. 全局流程变量 3.1 启动时设置 3.2 通过 Task 设置 3.3 完成任务时设置 3.4 通过流程设置 4. 本地流程变量 4.1 通过 Task 设置 5. 临时流程变量 引言 在之前的文章中,松哥也有和小伙伴们使用过流程变量,然而没有和大家系统的梳理过流程变量的具体玩法以及它对应的数据表详情,今天我们就来看看 Flowable 中流程变量的详细玩法. 1. 为什么需要流程变量 首先我们来看看为什么需要流程变量. 举一个简

Java中序列化和反序列化的完整讲解

2022-11-10
目录 一.序列化 二.序列化和反序列化的应用 三.序列化和反序列化地实现 3.1.JDK类库提供的序列化API 3.2.序列化要求 3.3.实现java序列化和反序列化的三种方法 四.CustomerForm 类序列化和反序列化演示 五.Externalizable接口实现序列化与反序列化 5.1.Externalizable 的不同点 5.2.CustomerForm 实现类 Externalizable 5.3.Externalizable 实现序列化和反序列化 总结 一.序列化 1.1.S

SpringBoot整合Security权限控制登录首页

2022-11-10
目录 在 pom 文件中增加thymeleaf页面支持 application.yml 配置文件 login 页面 controller目录下跳转配置 UserController 在 pom 文件中增加thymeleaf页面支持 <!-- 引入页面模板 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thym

Java实现将导出带格式的Excel数据到Word表格

2022-11-10
在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件.但是如果表格比较长,内容就会存在一定程度的丢失,无法完整显示数据.并且当工作量到达一定程度时,整个过程会非常费时,降低工作效率.那么如何轻松地将带格式的 Excel 数据导出到 Word 表格呢?不用担心,本文将通过Java应用程序详细介绍如何把带格式的Excel数据导入Word表格.希望这篇文章能对大家有所帮助. 使用工具:Free Spire.O

Java8-Stream流操作List去重问题

2022-11-09
目录 Java8Stream流操作List去重 List列表运用Java8的stream流按某字段去重 问题 思路 Java8Stream流操作List去重 根据属性去重整体去重使用 distinct ArrayList<LabelInfoDTO> collect = labelInfoDTOS.stream(). collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(

SpringBoot整合tkMapper的方法

2022-11-09
SpringBoot整合tkMapper 项目使用SpringBoot2.0,H2数据库,使用了 Lombok 简化代码:本人是刚入门的菜鸟,下面是本人使用SpringBoot整合tkMapper的一个小demo,记录下来本人在此处踩得坑,有需要修正的地方欢迎各路大神.大佬指导,小弟谦虚受教. 1 搭建一个SpringBoot的项目,怎么搭建网上教程一大堆,这里就不描述了直接进入正题,首先先看一下整体的项目结构 2 pom文件引入依赖(注意依赖冲突) <dependencies> <de

Flowable执行完毕的流程查找方法

2022-11-09
目录 正文 1. 历史流程信息 2. 历史任务查询 3. 历史活动查询 4. 历史变量查询 5. 历史日志查询 6. 历史权限查询 7. 自定义查询 SQL 8. 历史数据记录级别 正文 @[toc]在之前的文章中松哥和小伙伴们聊过,正在执行的流程信息是保存在以 ACT_RU_ 为前缀的表中,执行完毕的流程信息则保存在以 ACT_HI_ 为前缀的表中,也就是流程历史信息表,当然这个历史信息表继续细分的话,还有好多种,今天我们就来聊一聊这个话题. 假设我有如下一个流程: 当这个流程执行完毕后,以 

一场由Java中Integer引发的踩坑实战

2022-11-09
看过阿里巴巴开发手册的同学应该都会对Integer临界值127有点印象. 原文中写的是: [强制]所有整型包装类对象之间值的比较,全部使用 equals 方法比较. 说明:对于 Integer var = ? 在-128 至 127 之间的赋值,Integer 对象是在 IntegerCache.cache 产生, 会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都 会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方法

Java String源码contains题解重复叠加字符串匹配

2022-11-09
目录 原题 解题思路 Java String contains 函数 原题 重复叠加字符串匹配 解题思路 解题思路已经写在代码中了: class Solution { public: bool contain(string &a, string &b, long long hash_b) { for (int i = 0; i <= a.size() - b.size(); i++) { int k = 0; long long hash_a = 0; while (k < b

浅析Spring基于注解的AOP

2022-11-08
目录 一.准备工作 二.基于注解的AOP之前置通知 三.基于注解的AOP之切入点表达式的语法和重用以及获取连接点的信息 ①切入点表达式的语法 ②获取连接点的信息 ③重用写入点表达式 一.准备工作 ①创建一个Maven工程 ②添加依赖 在IOC所需依赖基础上再加入下面依赖即可: <!-- spring-aspects会帮我们传递过来aspectjweaver --> <dependency> <groupId>org.springframework</groupId

Mybatis各种查询接口使用详解

2022-11-08
目录 一.查询一个实体类对象 二.查询一个list集合 三.查询单个数据 四.查询一个数据为map集合 五.查询多条数据为map集合 一.查询一个实体类对象 ①创建SelectMapper接口 若sql语句查询的结果为多条时,一定不能以实现类类型作为方法的返回值 否则会抛出异常TooManyResultsException 若sql语句查询的结果为1条时,此时可以使用实体类类型或list集合类型作为方法的返回值 /** * 根据id查询用户信息 * @param id * @return */

springboot集成tkmapper及基本使用教程

2022-11-08
目录 一. 简介 二.集成mybatis&tkmapper 2.1.所需依赖 2.2.配置yml 2.3.主启动类上加注解扫描 三.基本使用 3.1.创建BaseMapper接口 3.2.entity实体层 3.3.mapper持久层 3.4.service服务层 四.测试 五.注意: 参考资料 SpringBoot使用tkmapper 1.加载依赖 2.引入逆向工程的插件 3.插件配置文件 4.错误 一. 简介 tkMapper是⼀个MyBatis插件,是在MyBatis的基础上提供了很多工具