- 博客(350)
- 资源 (34)
- 收藏
- 关注
原创 使用mvn archetype命令,构建自定义springboot archetype脚手架创建工程的方法
上步修改了pom中的maven坐标,此处可以直接执行命令,安装到本地仓。#pom坐标修改后直接安装到本地仓#未修改pom文件,或想自定maven坐标,可以加入以下参数#创建项目-B -e -X ^参数说明#-e打印错误信息,-X打印debug信息-B -e -X ^#新建项目的maven坐标 ^#自定义脚手架的maven坐标 ^#其它生成参数 ^以上是基于本地仓构建archetype脚手架及使用脚手架创建项目的方法,也可以使用mvn deploy发布到私服,统一团队的编码风格。
2025-03-14 14:13:05
740
原创 使用mvn deploy命令上传jar包
是将本地 jar 包或 pom 文件上传到 Maven 私服的重要命令。通过正确配置-Dfile-DpomFile-Durl和等参数,可以高效完成上传任务。同时,注意仓库类型、权限和 pom 文件信息的正确性,避免常见错误。
2025-03-12 15:56:43
1316
原创 java - SpringBoot3.x接入Security6.x实现JWT认证
使用OncePerRequestFilter的优点是,能保证一个请求只过一次筛选器。可以在filter中实现对jwt的校验,验证成功后需要对Security上下文进行标注。标记认证已经通过,这点非常重要。如果认证完了不标注,后边的过滤器还是认为未认证导致无权限失败。以上支持介绍了对于已有JWT统一认证系统的接入(JWT解析和认证),不涉及JWT生成和管理相关内容。
2024-12-31 21:45:00
1613
原创 java-使用druid sqlparser将SQL DDL脚本转化为自定义的java对象
一、引言二、环境三、待解析的DDL四、解析后的对象结构五、完成的UT类六、控制台输出总结不通的DDL定义语法会解析为不通的statment对象,这里只演示了一种DDL格式,如有些字段注释写在create中,上面的代码还要做相应的修改。
2024-12-14 21:35:28
1204
原创 Java-雪花算法(snowflak)生成有序不重复ID的Java实现
使用了按位左移操作,最终将时间戳差值、机器码、顺序号,三个值合并到一个long中。这个算法有个好处是,可以把ID解码,得到时间、机器码和顺序号。/** 长度64位,其中:* 1位符号位,0正数,1负数* 41位毫秒级时间戳,41111111111111111111111111111* 10位机器ID,11 1111 1111* 12位序列号,1111 1111 1111* */在后端系统中,使用64位long类型的ID通常不会遇到问题。
2024-10-22 19:00:00
7135
3
原创 Java - 使用AOP+SpEL基于DB中的用户ID自动补全用户姓名
切入点的可以通过“表达式”来匹配,也可以通过指定类型注解去匹配,我选择了注解的方式,适合这个场景,通过注解可以按需指定需要补全的方法。return rst;try {});标记字段是需要回显的,value定义回显依赖的id属性。/**** 用户属性依赖定义注解*//*** 标准SpEL表达式,标记当前字段回显依赖的ID字段,* 如: 当前对象user的createName属性,需要依赖createId的值回显,
2024-10-18 18:30:00
683
原创 Java - Spring 表达式语言 (SpEL) 简单入门
SpEL语法简单,容易上手,在面向切面编程中有很大的发挥空间。例如:库表中只记录了用户id没有记录用户名,但界面需要展示用户(userName),类似接口很多如果对每个返回值都处理一遍耗时耗力。此时可以基于AOP的思想,把需要做转换的方法做切面,监控其返回值。通过SpEL动态读取的user对象只有id,基于id反查用户名后再回写到对象的userName属性中。当然用到SpEL是因为每个表对id的定义不同,可以使用自定义注解+表达式方式把依赖定义再对象属性上。
2024-10-16 17:55:45
1616
原创 火狐浏览器重置密码后收藏的标签密码等数据被清除
现在大部分web应用都要求使用chrome,比如在线文档、在线的office等,可是我还一直坚持使用火狐浏览器。只是因为当初的先入为主,一直还坚持使用火狐浏览器,这次的遭遇让我丢失10年积累的数据,太让我失望了。最早接触火狐是因为当时开发前端页面,firebug是当时最好用的前端调试工具。这也是我准备放弃使用火狐浏览器的主要原因,是压垮我对火狐信任的最后一根稻草。再也不见~~~~~~~~
2024-09-06 22:00:00
539
原创 pgsql-使用dump命令制作数据库结构、数据快速备份bat脚本
通过bat将每次需要重复执行的cd命令、输入pgsql密码、修改执行脚本等重复操作都避免了,减少工作量的同时可以将此类备份操作交由运维人员定期完成。
2024-07-16 21:45:00
576
原创 java使用jdeps、jlink制作不依赖jdk多系统独立运行jar包的方法
通过上述方法,我们基本上满足了在不同环境中运行程序的需求。然而,这种方法并非无可挑剔。主要的问题在于 Java 运行环境(JRE)的体积相对较大。尽管我们的 JAR 文件仅有 30KB,但所需的最小化 JRE 环境,即便经过精简,也至少需要 50MB 来仅输出一个 “Hello World”。对于一个简单的控制台应用程序来说,1MB 的运行环境大小尚可接受。在未来的工作中,我考虑尝试使用 exe4j 进行打包,尽管这种方法牺牲了跨平台的特性。
2024-07-11 20:00:00
893
原创 git在http协议下拉取、推送(pull\push)代码免输入账号、密码的设置方法
在Git项目的管理实践中,虽然直接使用HTTPS URL克隆代码到本地是一种普遍的做法,但SSH URL也因其独特优势而备受一些开发者的青睐。两者在操作上各有千秋,主要体现在用户体验和安全性上。对于初学者而言,HTTPS URL克隆无疑更为直观和便捷。只需简单地复制URL,然后执行git clone命令,就能轻松地将远程仓库复制到本地。然而,这种方式的不足在于,每当进行代码拉取(fetch)或推送(push)时,都需要手动输入账号和密码,这无疑增加了操作的繁琐性。
2024-06-27 22:00:00
2091
原创 git 更换远程仓库地址三种方法总结
由于私服的 gitlab 的地址变更,导致部分项目代码提交不上去,需要修改远端仓地址。其它需要修改远程仓地址的情况如:切换git clone 协议由ssh变为https。
2024-05-07 21:30:00
8623
1
原创 pgsql_postgresql表的继承关系查询
表继承是pgsql的一个特性,通过表继承可以方便的实现表数据的横向拆分(表分区),从而实现对数据做物理隔离等操作。继承有别于表分区,继承可以很多层级。比如存储省、市、区的数据时,即要物理隔离每层数据又要按层级统一查询,此时做个带有继承关系的表是很好的实现方式。实现方法是,建立三个shcema为 province、city、region,每个schema中建立一个表 persion ,并实现继承关系如下:管理继承关系是个麻烦事,如果库中有1000张表,有部分表没有实现三级继承关系,如何排查?
2023-12-15 20:45:00
672
原创 springboot1.x升级到springboot3.x中遇到的问题总结
springboot是个很受欢迎的框架,减化了spring mvc的xml配置,现在springboot已经升级到了springboot 3.x,但还有一些老项目用的技术栈是java8+springboot 1.x。参照之前的项目配置去运行新版本的springboot 3会踩很多坑,技术栈的升级过程如果还按照原有的思维定式去操作是很难定位问题的。下面总结了升级过程中遇到的一些问题。
2023-12-13 19:45:00
535
原创 springboot_3.2_freemark_基础环境配置
FreeMarker 是一款模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。模板编写为FreeMarker Template Language (FTL)。它是简单的标签语言。需要在服务器端组织数据,之后通过编写FTL模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据,而在模板之外可以专注于要展示什么数据。
2023-12-10 11:19:55
539
原创 springboot_tomcat开启access log日志,监控打印每个请求地址和响应时间
springboot 1.x 内置tomcat服务器,其中的access log日志可以记录每次请求、响应的一些关键信息,这为我们排查分析系统性能有很大的帮助。但springboot默认是不开启access log的,下面介绍下access log的开启方式和一些日志格式配置。通过记录access log,可以排查每个请求的一些关键信息。分析出那些地址是常用的请求,那些服务耗时严重,那些时间段的请求量大等信息。这些信息可以通过日志分析工具去分析,也可以使用awk命令实时统计。
2023-12-08 18:53:49
4958
原创 pgsql忘了登录免密,重置修改pgsql登录密码的方法
psql 命令行工具是PostgreSQL中的一个命令行交互式客户端工具,位置在安装目录的bin目录下(D:\Program Files\PostgreSQL\14\bin)重置密码需要执行命令:psql -h 127.0.0.1 -p 5432 -U postgres。修改前做好备份,密码重置完成后还需要将配置还原!
2023-12-07 19:42:49
2680
4
原创 Java_JDK8到JDK21各版本发行时间及重要特性
一直以来,Java8 都是 Java 社区心头的痛,Java8提供了很多特性,比如Lambda 表达式、Optional 类,加上Java8超长的支持时间,都导致了JDK8的使用至今。因为 Java 届的霸主框架 SpringBoot,选择了最小支持的 Java lts 版本,就是最新的 Java17。从 JDK 诞生到现在,还在长期支持的版本主要有 JDK 7、JDK 8 、JDK 11以及 JDK 1,JDK 17 将是继 Java 8 以来最重要的LTS版本,是 Java 社区八年努力的成果。
2023-12-04 18:54:48
11638
1
原创 Springboot_Tomcat数据库连接池配置
springboot 1.5x 默认使用 tomcat 连接池,配置后是否生效可以通过 org.apache.tomcat.jdbc.pool.DataSource 对象监控。
2023-12-01 21:15:00
2097
原创 window配置完hosts电脑重启后莫名被还原
网上查不到 *.gw.bk 这个文件是怎么产生的,如果有类似的问题可以尝试这么修改。查问题时看到有些备份文件的名字是 hosts_backup 这个。按照同样的方法处理就可以了。
2023-11-28 12:05:30
3947
5
原创 Git多库多账号本地SSH连接配置方法
在使用Git管理代码时,很大可能会存在多个不同的库,公司(一般部署的是私服),个人(github、gitee或其他的),这时候就要同时操作多个不同的账号提交代码。下面说下使用ssh方式配置和管理多个git账号的方法。通过以上配置,可以方便的在多个库中切换账号。我们只需要在conle的根目录下执行git命令即可,git会通过域名去寻找当前库需要使用的私钥,完成鉴权操作。
2023-11-27 22:45:00
650
原创 java_cron表达式_打印下次执行时间验证表达式是否正确
通过上面的测试,可以方便的查看下次执行时间,去校验cron表达式是否正确。需要注意的是 * 的使用,如写成这种形式 * */2 * * *?可能导致每秒钟都在执行。
2023-11-14 19:45:00
863
原创 pgsql_全文检索_使用空间换时间的方法支持中文搜索
对于简单的全文检索场景,使用pgsql就可以实现,对于检索的基础概念如文档、查询和操作符,词频、权重、排序、高亮都简单说明。pgsql默认的to_tsvector()函数只支持使用空格进行分词,对于中文这个函数就不好用了。对于中文分词有两个方案解决:1>使用pgsql的中文分词插件;2>利用空间换时间的方法,在记录写入db前利用java的jieba等分词组件对文档分词,并按tsvector格式拼接,独立一列记录分词后的类型。如果需要提高检索效率,考虑在tsvector字段上添加GIN类型索引。
2023-11-10 19:00:00
3555
2
原创 win10_Git基于WSL(Linux子系统)统计代码行数命令
找到的基于git统计代码行数的命令,一般都是基于linux系统的shell命令。在使用mac电脑或者linux系统开发时,执行这些命令比较方便。但是还有大部分人是使用windows做开发,这时就遇到麻烦了,因为基于shell的统计命令不能在windows系统下运行。2022年11月16日微软 Win11/10 Linux 子系统 WSL 1.0.0 正式版发布。这也为这些在windows上做研发的人们提供了执行原生linux命令提供了遍历。
2023-10-19 20:30:00
559
原创 java_Springboot_Mybatis-Plus_自定义多数据源MybatisSqlSessionFactoryBean配置
需要在服务中集成表结构维护的功能,维护表结构就需要使用具有执行DDL脚本权限的账号。为了保证系统的安全性,考虑在工程中配置多个数据源引入不同权限账号,高权限账号只在特定逻辑中使用,其它默认业务使用低权限账号。加入新的数据源不能影响已有的功能,保证已有功能继续使用只具有CRUD权限的账号。看了几个多数据源接入方案,都不太满足需求。Springboot默认支持的多数据源Mybatis-Plus的多数据源既动态数据源dynamic-datasource插件Alibaba Druid动态数据源。
2023-09-27 16:22:02
4504
1
原创 win10-docker-mysql镜像安装运行基础
因为通过 docker search 并不能查看某个镜像的版本信息,如我需要特定版本的 mysql 那怎么办呢~对已经运行的容器更改目录映射不太方便,这里采用删除重新运行的方式;
2023-09-01 14:04:07
1117
原创 windows子系统-wsl命令基础用法和无响应问题排查及解决方法
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。出现错误:如果出现“系统找不到指定的文件”的提示,是因为之前安装的没有卸载的原因。注:如果安装完后执行 wsl -l -v 提示“没有可用发行版本”,可用方法二安装。
2023-08-28 10:49:48
28671
5
原创 Java-Maven-解决maven deploy时报 401 Reason Phrase Unauthorized 错误
一般是多个项目中,例如a项目中使用了b项目的一些方法需要添加b项目作为依赖,此时就需要将b项目使用install方式打包到本地[maven]仓库中,以此来给a项目依赖导入调用。在本地的pom文件配置好私服仓库的信息之后,执行deploy命令,可以将maven所打的jar包上传到远程的repository,便于其他开发者和工程共享。项目需要打成jar包上传到私服,供其它项目引用。deploy与install的主要区别就是install是将项目jar包放在本地仓库,而deploy是放在私服仓库。
2023-08-22 16:25:40
9148
1
原创 java - springboot_1.0 - jdbc tomcat 连接池的简单配置
连接池配置需要考虑几个因素,如:数据库的最大连接数是多少?有几个微服务需要访问这个DB?每个微服务部署了几个实例?等等。比如我们只使用一个DB实例,最大连接数为1600;集群部署了60个实例,都需要访问数据库;那么每个服务的maxActive配置应该小于26(1600/20);在实际配置时,还需要考虑为扩容预留的链接等情况,所以maxActive=20是一个比较合理的配置;
2023-07-19 17:07:11
1456
原创 java-通过异或(xor)实现快速加解密的方法
运算规则如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。更容易记忆的规则(半加运算)异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。所以异或常被认作不进位加法。异或不常用,几天不不碎碎念几遍规则,有个2周就把它忘干净了!!!。首先说RandomAccessFile是个很强大的类,读写文件不丢内容。
2023-07-07 11:42:23
1598
原创 java-Mybatis自定义JsonObjectTypeHandler动态解析数据库JSON类型数据
配置并使用自定义的TypeHandler比较容易,继承个基类实现几个方法就OK了。不过总有一种猜的成分在里面,不知道他是如何工作如何实现的,甚至不清楚我自定义的handler是否成功,是否注册到了需要生效的位置。如果不通过分析代码分析流程自己永远只能在“黑盒”之外用一用。遇到问题解决问题,是很好的学些过程,在时间和进度允许的的情况下,可以钻下“牛角尖”。
2023-06-05 13:51:24
2890
原创 Springboot-mybatisplus-解决分页组件IPage失效问题
mybatisplus的分页插件IPage很好用,不管是基于@select注解还是基于XML的都可以实现分页查询;不知道代码有什么改动,用着用着就分页居然不好使了-_-,select时由于没有注入分页条件,导致将所有结果都返回了。没有深究直接上解决方案吧!
2023-05-22 16:56:17
2557
原创 java-Springboot+Junit-解决如何构建request、response、session、cookie模拟封装http请求问题
一看到HttpServletRequest接口有36个实现类时,当时就想自己实现这个接口造个轮子。但看到了接口多达50个需要实现的方法时打消了这个念头。还是踏实找找有没有已经实习的直接能用的类吧。去实现HttpServletRequest接口对我们肯定是有帮助的,但是对于完成业务功能来说就有点儿“误入歧途”了,影响了工作效率。一个Request对象的实现可能需要你去了解一堆的知识点,未知的概念和一个个坑等着你去踩,提高工作效率放到第一位!!!
2023-04-13 16:01:22
2536
原创 java-使用Arthas全链路统计方法调用链和执行耗时
Arthas监控诊断产品功能比较多,可以帮助我们不停服务在线诊断问题。使用jmh配合Arthas可以进行吞吐量、平均执行时间等基础测试和性能监控分析,帮助开发人员科学定位性能瓶颈和优化点。
2023-03-21 17:22:25
4514
原创 java-使用jmh基准测试框架比较五种字符串拼接性能
Java中提供了5种字符串拼接的方法,使用+拼接字符串是最长见的方法。除此还有StringBuilder、StringBuffer、MessageFormat、StringFormat单纯从拼接执行时间上比较下五种方式的性能。
2023-03-21 08:51:51
365
原创 Springboot+Mybatis-解决JPA、JDBC冲突导致@Transactional事务不生效不回滚的问题
项目中jpa、mybatis混用时,需要在使用@Bean(“xxx”)注解注册对象时,对dataSource、sqlSessionFactory、DataSourceTransactionManager显示配置;注解@EnableTransactionManagement标记启用事务,没加事务不会起作用,手动调用session对象的rollback()也无效;通过打印事务管理器,发现Mybatis环境下的事务管理器实例为JpaTransactionManager对象,明显不对。
2023-03-16 13:32:38
3505
原创 pgsql-Create_ALTER_GRANT_REVOKE命令语法
SELECT允许 SELECT 从任何列、或特定的列、表、视图、物化视图、或其他类似表格的对象。也允许使用COPY TO。还需要这个权限来引用UPDATE 或 DELETE中现有的列值。对于序列,这个权限还允许使用currval 函数。对于大对象,此权限允许读取对象。INSERT允许将新行的INSERT加入表、视图等等。可以在特定列上授予,在这种情况下INSERT命令中只有那些列可以被分配(其他列将因此而收到默认值)。还允许使用COPY FROM。UPDATE。
2023-02-28 16:27:46
1000
原创 SpringBoot-使用链接字符串动态创建SqlSessionFactory执行任意SQL脚本
SpringBoot大大减少了使用XML配置的复杂性,但是想通过代码去实例化一个对象有点儿无从下手的感觉。SpringMVC中通过XML的配置和层级关系,大致能翻译为代码去构建一个对象。SqlSessionFactory的创建也是参考了XML的配置去构建的。环境:SpringBoot 1.56 + Pgsql 14。
2023-02-23 16:00:27
1348
原创 pgsql-用户&角色&组角色创建和维护
pgsql高版本中授权体系里将用户、组、角色都合并到role对象中,完全松散管理。没有login特性的role可以理解为角色;带login特性的可以理解为用户;官方文档中grant 授权语法里的语法结构仔细的看看,结构基本一致注意下on后边的关键字,对角色的理解很有帮助。
2023-02-09 16:38:45
1278
leetCode 面试高频算法整理-2020
2020-09-25
F5XForwardedFor2008源码.zip
2020-04-28
mybatis-generator 1.3.5 源码+改进+支持自定义文件后缀+表、字段注释
2017-10-16
java-mybatis、springmvc 整合demo源码(druid-demo)
2017-04-14
excel格式unicode(4E00-9FA5)中文字符集,34083字含多音字
2016-04-28
c# 动态操作 zip 组件 ioniczip
2015-12-07
豆瓣小组话题扫描器v2(源码)
2015-09-14
C# VS 2010 创建、安装、调试 windows服务(windows service)
2012-05-07
EditPlus 3 中文破解版
2012-04-24
修复windows2003无搜索栏的问题
2012-02-13
反射技术测试
2011-09-28
win7登录界面器 V1.0
2010-09-09
C# .NET4.0 自定义文件并实现文件与应用程序关联
2010-06-29
获取Oracle服务名
2008-06-25
NHIbernate1.2 应用事例+sql数据库
2007-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人