![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
远方的、远方的、、、
这个作者很懒,什么都没留下…
展开
-
自定义Mybatis-generate(二)
2,需要自动生成 controller层、service层、mapper接口、mapper.xml、实体类、自定义扩展类等。4,mybatis-generate 本身的模板及模板参数固定,无法扩展到更多自定义类,需要更改源码实现。3,连接的数据库是 gauss db。1,SpringBoot项目。5,自动生成单元测试类等操作。controller单元测试类。service.ftl 接口。自定义用于导入导出实体类。原创 2024-07-03 14:12:04 · 148 阅读 · 0 评论 -
自定义Mybatis-generate(一)
在 resources目录下创建 templates目录,然后再下面创建 模板 controller.java.ftl、file.java.ftl、mapper.java.ftl、mapper.xml.ftl、service.java.ftl、serviceImpl.java.ftl、test.java.ftl。2,需要自动生成 controller层、service层、mapper接口、mapper.xml、实体类、自定义扩展类等。3,连接的数据库是 gauss db。5,自动生成单元测试类等操作。原创 2024-07-03 11:47:40 · 230 阅读 · 0 评论 -
日志记录功能
1,可记录页面操作模块、按钮的日志记录。自定义 controller/service层方法注解。OperationLogMapper 的相关代码这里略。4,需要考虑到扩展性及个性化定制。2,记录详细的指定操作数据日志。3,记录的数据可能需要查询表。实体对象OperationLog。controller层使用案例。Mapper层自定义注解。mapper层切面实现。mapper层使用案例。原创 2024-06-25 11:18:47 · 642 阅读 · 2 评论 -
大文件下载功能需求
注:这里采用分块传输(Http1.1以上版本支持),禁止一次性读取到内存导致内存溢出,需要进行流式读取并且边读边向客户端(浏览器)进行输出。以上即完成了大文件下载功能,这时候还需要考虑并发读取数量的限制,这里采用信号量+拦截器来进行实现。1,大文件(5G、10G等)下载时,内存溢出、超时等问题。4,前后端对于大文件下载的瓶颈点(如浏览器内存限制等)1,支持大文件(5G、10G等)下载 且页面不蹦。2,在资源紧张时如何进行大文件下载。3,并发下载时的并发数量限制。二,对于大文件下载需要考虑的点。原创 2024-06-21 11:37:10 · 268 阅读 · 0 评论 -
日期时间工具类
【代码】日期时间工具类。原创 2024-06-11 17:03:04 · 629 阅读 · 0 评论 -
knife4j实战
knife4j是基于swagger二次开发的框架,提供了丰富的页面管理,增强了原有的wagger功能。原创 2024-03-03 09:24:52 · 390 阅读 · 0 评论 -
运维随录实战(2)之k8s部署应用
对于需要供外部服务或客户端访问的系统一般需要配置绑定域名,即需要在Ingress中绑定。进行设置需要发布的分支为受保护分支。原创 2024-03-04 21:50:48 · 678 阅读 · 0 评论 -
react.js学习demo
需要引入三个js包:browser.min.js、react.js、react-dom.js-----demo1<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Hello React</title>原创 2018-03-06 20:39:44 · 355 阅读 · 0 评论 -
分布式ID选型对比(4)
特点: 百度Uid generator是基于雪花算法实现,不同点在于其workId是动态的,即不同机器生成的workId不同,将主键ID作为wrokId,在项目启动时完成workId的生成及获取.遗憾的是 目前百度的这个开源算法已经停止了维护!一, 创建表: worker_node(在项目启动时初始化生成workId)入口类: DefaultUidGenerator。配置类: UidGeneratorConfig。二, 创建Model及Exmple、Dao。接口: UidGenerator。原创 2024-03-02 14:52:29 · 486 阅读 · 0 评论 -
高性能通信之Netty
一, 同步IO(BIO)模型的架构。一般针对性能不高的情况下可以使用.二,异步IO(NIO)模型的架构。原创 2024-03-02 20:42:05 · 387 阅读 · 0 评论 -
maven学习之从搭建maven环境到在项目中如何使用maven
----------maven环境搭建及简单命令使用1,maven下载地址:maven.apache.org到达该页面找到左侧download,然后下载Binary zip archive对应的zip包。2,配置maven环境变量。 找到环境变量(这里设置系统变量,用户变量同理,这里略),比如我下载的maven解压在"D:\DevelopmentRoot\apache-mave原创 2017-12-17 21:27:29 · 403 阅读 · 0 评论 -
分布式ID选型对比(2)
三, resources目录下编写自动生成代码配置文件: generatorConfig.xml。4, resources/mybatis目录下建: IdGeneratorMapper.xml。特点: 相较于数据库自增,扩展性更好,但缺点是每次取ID都需要加锁,性能较低.3, controller层: GenerateIdController。2, dao层接口: IdGeneratorMapper。1, 对象 IdGenerator。原创 2024-03-02 14:35:38 · 636 阅读 · 0 评论 -
SpringBoot+Jwt+Redis
登录认证授权流程原创 2024-03-02 18:23:29 · 664 阅读 · 0 评论 -
Java-加密解密总结
常见加密算法1、DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合; 2、3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;3、RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;4、IDEA(International Data Enc原创 2018-01-27 13:53:34 · 1207 阅读 · 0 评论 -
关于使用开发工具破解及安装汇总
1,IDEA2017版破解方法:进入ide主页面,help-register-license server,输入:http://xdouble.cn:8888/即可2,IDEA2017版破解方法:https://blog.csdn.net/qq_27686779/article/details/78870816注:路径不要包含中文,否则出不来。3,visio 2013破解...原创 2018-06-13 12:37:10 · 354 阅读 · 0 评论 -
分布式ID选型对比(3)
Leaf的snowflake模式依赖于ZooKeeper,不同于原始snowflake算法也主要是在workId的生成上,Leaf中workId是基于ZooKeeper的顺序Id来生成的,每个应用在使用Leaf-snowflake时,启动时都会都在Zookeeper中生成一个顺序Id,相当于一台机器对应一个顺序节点,也就是一个workId。基于号段模式原理实现的与Leaf如出一辙,每个服务获取一个号段(1000,2000]、(2000,3000]、(3000,4000]重复Http方式的(2)(3)操作。原创 2024-03-02 14:46:35 · 1047 阅读 · 0 评论 -
flyway实战
四, 在resources目录下创建db.migration目录并在该目录下创建sql文件, V1.0.1__init.sql。启动项目后,会生成一张表: flyway_schema_history。flyway是一款用来管理数据库版本的工具框架。三, flyway配置参数。类似的其他sql文件同理。原创 2024-03-02 21:16:43 · 407 阅读 · 0 评论 -
分布式ID选型对比(1)
可以实现自己的ID生成中心,即TynyId-server,由该项目提供获取ID的方法供调用,但该方式比较耗IO,性能会有所下降。可以实现自己的ID生成中心,即leaf-server,由该项目提供获取ID的方法供调用,但该方式比较耗IO,性能会有所下降。特点: 对于高并发的系统,如果做了分库分表就不适合了,且数据库数量达到500万时就容易出现瓶颈,仅适合小数据量的系统.高(本地生成,(无网络开销,需要自己实现)高(本地生成,(无网络开销,需要自己实现)依赖数据库,需要频繁更新数据库maxId。原创 2024-03-02 14:31:14 · 1230 阅读 · 0 评论 -
异步编程实战之r2dbc
五, 编写DataSourceConfig。controller模板。四, 编写入口生成主类。二, 数据库连接配置。原创 2024-03-03 09:38:19 · 607 阅读 · 0 评论 -
POI 实现Excel 导入、导出功能
【代码】POI 实现Excel 导入、导出功能。原创 2024-06-04 15:38:56 · 865 阅读 · 0 评论 -
指定目录匹配文件并批量导入
1,需要从某个目录以某种正则表达式匹配到所有文件。3,上传完成后需要返回上传的地址。2,将这些文件批量上传。3,编写上传文件接口。原创 2024-05-28 20:24:19 · 260 阅读 · 0 评论 -
Spring AOP 切面按照一定规则切片并行查询Mapper并返回
有时候我们在查询mapper层时,有时候可能由于入参数据过大或者查询的范围较大,导致查询性能较慢,此时 我们需要将原本的查询按照一定规则将查询范围进行切面,然后分片查询,最后将查询结果进行组装合并。3,编写核心切面处理类。4,编写切片规则实现类。2,定义切片规则接口。原创 2024-05-28 11:22:22 · 416 阅读 · 0 评论 -
Spring AOP实现Mapper层查询返回重新赋值
针对查询返回的数据,在数据库层处理可能会影响到性能,在考虑性能及维护方便的情况下,采用AOP实现。5,在mapper指定接口方法上使用。2,定义公共业务处理接口。3,编写AOP核心实现。4,编写业务处理实现。原创 2024-05-23 14:19:34 · 417 阅读 · 0 评论 -
Spring Aop 实现对mapper层入参进行重新赋值
需要对mapper查询的入参的某个属性值进行特殊处理后查询。3,定义切面 MapperRequestDataAspect。不影响原来业务且方便扩展维护。6,在对应mapper层的对应方法加添加使用。4,定义指定业务指定入参处理逻辑。2,定义动态处理指定业务的接口。原创 2024-05-23 10:31:49 · 314 阅读 · 1 评论 -
SpringBoot Validation自定义注解之校验指定最小整数
1,引入核心关键依赖。原创 2024-05-21 10:23:42 · 632 阅读 · 0 评论 -
SpringBoot+Mock Mvc测试web接口增删改查、导入导出
使用Mock Mvc单元测试web接口的增删改查、导入、导出功能,涵盖登录 token header赋值等全流程。3,编写单元测试核心类。2,编写登录抽象父类。原创 2024-05-14 17:26:23 · 304 阅读 · 0 评论 -
Spring+Mybatis-plus 实现 Gauss DB数据库代码生成
3,在idea 右上角 plugins-> mybatis-generator-> mybatis-generator:generator 双击执行,即可在指定配置中生成代码。使用的gauss db数据库(类似oracle语法),需要根据指定表生成entity、dao等代码。2,在resources目录下 mybatis-plus 的配置文件 mybatis-generator.xml。原创 2024-05-13 16:25:26 · 650 阅读 · 0 评论 -
Spring AOP切面实现为mapper层指定方法入参字段赋值
有时候我们在进行某些操作时,可能需要额外进行复制操作,而这些字段往往不是由前端/客户端填写输入的,而是由后端给与,类似于 登陆者、创建时间、更新时间等字段,这时,可以借助AOP指定mapper层(也可改为其它层)进行默认值赋予。原创 2024-05-13 10:05:45 · 326 阅读 · 0 评论 -
Spring JdbcTemplate实现自定义动态sql拼接功能
sql 需要能满足支持动态拼接,包含 查询字段、查询表、关联表、查询条件、关联表的查询条件、排序、分组、去重等。11,核心类之 BasicConditionQueryCriteria(入参)7,核心类之 PredicateCondition。8,核心类之 PropertyCondition。10,核心类之 ExecutionSql。9,核心类之 SqlBuilder。6,核心类之 Condition。2,创建项目并引入 pom依赖。4,核心类之 Column。5,核心类之 Table。原创 2024-05-06 16:50:11 · 506 阅读 · 0 评论 -
Spring JdbcTemplate使用临时表+事务会话管理实现数据新增、查询及自动清除功能
由于某些情况下当查询过滤参数过大时,执行sql由于参数过大而报错,此时 需要使用临时表的方式,即 当参数超过某个阀值(如 1000,可调整)新增一张临时表,将原表 与 该临时表进行inner join 达到条件筛选过滤的目的(当然,除了这种方式,还可以考虑 将参数进行切片后分批次查询组装)。注意:要想实现 插入数据 与 查询 在同一个会话中实现,这里采用最简单的实现方式:事务 来实现,即 方法上加上注解 @Transactional 即可。4,编写 dao 层接口代码。2,引入需要的pom依赖。原创 2024-05-06 10:58:26 · 483 阅读 · 0 评论 -
关于System.out.printf()常用参数
%%表示%;%d表示十进制整数输出,byte、short、int、long、Byte、Short、Integer、Long;%f表示十进制浮点数格式输出,float、double、Float、Double、BigDecimal;%e,%E表示科学记号浮点数格式输出,科学记号举例如:100000=1e+5,可用于float、double、Float、Double、Bigdecimal%s原创 2017-12-06 09:06:14 · 1914 阅读 · 0 评论 -
ThreadLocal
1, ThreadLocal是线程局部变量,每个线程都含有一个独立的局部变量副本ThreadLocalMap,该副本随着线程消息而被垃圾回收器回收.2, 为了保证线程安全,空间换时间,保证线程间隔离.3, 每个ThreadLocal只能保存一个变量。原创 2024-03-02 18:21:50 · 366 阅读 · 0 评论 -
Java设置模式之:Composite组合模式
1,定义一个接口,作为组合的枢纽进行传递package com.org.composite;//定义接口:用来指定说明要完成那些行为动作public interface Component { public void doSomething(); } 2,定义一个实现类,作为树形结构的最低端,实际操作的也是该对象package com.org.compos原创 2018-01-06 14:17:15 · 688 阅读 · 0 评论 -
Java绘制验证码完整demo
----1,引入servlet的jar包,搭建好开发环境(eclipse+JDK等)----2,编写主页面(输入用户、密码、验证码的页面index_demo_10.jsp)<%@page import="com.util.JSPUtils"%><%@page import="java.util.ArrayList"%><%@page import="java.util...原创 2018-03-16 19:59:55 · 360 阅读 · 1 评论 -
输出指定文件
1,编写文件输出共有类package com.cn.pb.util;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;/** * Created by lizhihao on 2019/5/27 9:...原创 2019-05-27 09:56:46 · 121 阅读 · 0 评论 -
synchronized 与 递归 问题探讨
之前看过一篇文章,大概意思是synchronized 放在 递归方法上 容易造成死锁,作者还为我们提供了一个例子:大概如下:public class Test { public void recursive(){ this.businessLogic(); } public synchronized void businessLogic(){ System.out.println("处理业务逻辑"); System.out.println("保存到数据库"); this.r.原创 2020-07-20 12:05:44 · 613 阅读 · 1 评论 -
JfreeChart做折线图
package org.com.testJfreechart;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.GradientPaint;import java.io.File;import java.io.IOException;import java.util.Hash...原创 2018-02-23 17:02:47 · 719 阅读 · 1 评论 -
eclipse+mysql+tomcat的下载与安装(环境搭建篇)
--安装Java开发工具包安装Java开发工具包JDK在使用JSP开发网站之前,首先必须安装JDK组件。JDK包括运行Java程序所必须的JRE环境以及开发过程中常用的库文件。在介绍JDK时,还经常会涉及JVM,下面先来看看JDK(Java Development kit)、JRE(Java RuntimeEnvironment,Java的运行环境)与JVM(JavaVirtual Machine...原创 2018-03-09 22:11:10 · 637 阅读 · 0 评论 -
java基础学习--转载好的文章
Java语言必读《java编程思想》\\172.16.1.245\SAICMobility_Public\程序开发软件\后端书籍\Java编程思想(第4版).pdf《Java 8实战》\\172.16.1.245\SAICMobility_Public\程序开发软件\后端书籍\Java 8实战.pdf必学必会基础中的基础:java.lang 包...转载 2019-06-17 14:13:53 · 214 阅读 · 0 评论 -
Java实现注册时发送短信功能(网建发送)
-------1,引入所需要的jar包:commons-codec-1.4.jar;commons-httpclient-3.1.jar;commons-logging-1.1.1.jar-------2,编写短信发送的Java类compile('commons-codec:commons-codec:1.12')compile('commons-httpclient:commons-...原创 2018-03-16 20:06:58 · 436 阅读 · 0 评论