- 博客(26)
- 收藏
- 关注
原创 JDK7导入证书
打开JDK的目录,%JAVA_HOME%/jre/lib/security,在此目录打开控制台,输入命令,这里我分别演示两种情况,我用同样的命令在linux上执行是成功的没报错,但是证书并未生效,第二种方式是翻阅资料找到的,说是要加引号,但我加上还是未生效,如果遇到这种情况,可以试试这两种方式试试看。如果遇到keytool不可用这种情况,大概率就是没有设置JAVA_HOME,java -version看下,或者把keytool换成%JAVA_HOME%/bin/keytool,直接使用绝对路径。
2023-12-07 15:37:59
500
原创 springboot+mybatis实现AOP事务处理
最后,我们需要定义一个UserController,该Controller类中注入了UserService,通过调用UserService中的方法来实现对数据库的相关操作。然后,我们需要定义一个UserService接口和其实现类UserServiceImpl,该服务类中包含了一些数据库操作方法,并在这些方法上添加@Transactional注解,表示这些方法需要开启事务。首先,我们需要定义一个AOP切面,在该切面中声明一个@Transactional注解,该注解表示需要开启事务。
2023-04-27 10:31:14
317
原创 为什么Java 中1000==1000为false,而100==100为true?
你可能会疑惑,为什么两次结果不一样呢?其实这个Integer的自动拆装箱和缓存机制有关我们就先说自动装箱。
2023-03-24 16:51:39
213
原创 springboot自定义注解实现redis多线程定时刷新缓存
在上面的示例中,定义了一个自定义注解@RedisCacheRefresh,用于标注需要定时刷新缓存的方法。注解中包含三个属性,key用于指定缓存key,refreshInterval用于指定刷新周期,refreshThreads用于指定刷新线程数。可以使用ScheduledThreadPoolExecutor来实现多线程定时刷新。在定时任务执行时,可以通过注解中指定的key获取缓存值,并重新设置缓存值。在上面的示例中,RedisCacheRefresher类是一个定时任务,通过@Scheduled注解。
2023-03-06 16:17:31
985
2
原创 Linux命令
Linux 学习笔记 LINUX常用操作命令和命令行编辑快捷键终端快捷键:Ctrl + a/Home 切换到命令行开始Ctrl + e/End 切换到命令行末尾Ctrl + l 清除屏幕内容,效果等同于 clearCtrl + u 清除剪切光标之前的内容Ctrl + k 剪切清除光标之后的内容Ctrl + y 粘贴刚才所删除的字符Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)Ctrl + c 终止命令ctrl + o 重复执行命令Ctrl + d 退
2022-06-14 12:45:04
245888
原创 SpringCloud gateway
SpringCloud gateway一、服务搭建1.1 Eureka-server新建Eureka-service模块引入依赖、添加配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</arti
2022-05-15 16:15:06
233
原创 FastDFS上传下载文件
拉取fastfds镜像docker pull delron/fastdfs1.创建tracker容器启动,默认端口是22122 #最后一个tracter是传的参数,表示该容器是tracker,可以传tracker或storage #--network=host 表示使用宿主机的端口,也就是宿主机使用22122端口,容器就不能再使用22122端口,不写这个表示用bridge,bridge宿主机和容器端口不冲突 docker run -d --network=host --name=tracker
2022-04-10 00:52:00
1725
原创 redis主从
redis三主三从创建六个容器实例#--net host 使用宿主机的ip和端口,默认#--cluster-enabled yes 开启redis集群#--appendonly yes 开启持久化docker run -d --name=redis-node-1 --net host --privileged=true -v /mydata/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendon
2022-04-05 15:27:55
1074
原创 mysql主从数据库
基于docker创建的主从数据库1.创建master数据库docker run -d -p 3307:3306 --privileged=true -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/date:/var/lib/mysql -v /mydata/mysql-master/conf:/etc/mysql --name=mysql-master -e MYSQL_ROOT_PASSWORD=root mysql
2022-04-04 18:53:14
693
原创 多数据源切换
在实际开发中难免遇到多数据源的问题,基于spring框架是数据源的切换尤为方便,我这里就以springboot+mybatis-plus为例来做说明场景:适用于多种场景,纯粹多库、 读写分离、 一主多从、 混合模式等实际配置使用都很方便首先是导入依赖<!--多数据源--><dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-s
2022-03-20 16:29:38
1944
原创 PacketTooBigException
批量插入Mysql报错:com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2787754 > 1048576). You can change this value on the server by setting the max_allowed_packet’ variable.首先这个报错原因是要插入的数据有2787754B约等于2.7MB,而mysql表中最大允许包为1048576B,即1MB,所以导致插入
2022-01-23 17:05:53
916
原创 深拷贝和浅拷贝
深拷贝和浅拷贝了解深拷贝和浅拷贝之前,要先了解基本类型和引用类型**基本类型:**直接存储在栈中的数据,例如:字符串、布尔值、未定义、数字、null(null只是一个空指针对象,没有数据)。引用类型:将该对象引用地址存储在栈中,然后对象里面的数据存放在堆中,例如:数组、对象、函数。深拷贝,浅拷贝,从名字很清楚就是复制,创建副本。这里我举个栗子????:假设有对象PeopleA,PeopleA对象有两个属性:age(基本类型)、hobbies(引用类型)。这里我拷贝一下PeopleA会得到People
2022-01-08 14:14:14
319
原创 使用Quartz定时任务时,无法注入Spring Bean的问题解决
使用Quartz定时任务时,无法注入Spring Bean的问题解决在做定时任务时,需要继承Job来重写execute(),如果直接使用@Autowired,运行时会报出空指针异常原因:在quartz框架中,Job 是通过反射出来的实例,不受spring的管理。解决方案:重写JobFactory类@Componentpublic class JobFactory extends SpringBeanJobFactory { @Autowired private Autowire
2021-11-29 20:15:00
1339
原创 排序sql注入问题
在mybatis中,我们在使用排序时会用order by 【需要排序的字段】ASC —生序(ASC可以省略不写,默认就是ASC)或order by 【需要排序的字段】DESC—降序但是当我们使用mybatis的动态sql时,需要根据前端传输过来的值来进行对某个字段来进行生序或降序,order by后边需要传入两个值,一个需要排序的字段,另一个是ASC或DESC(降序或升序)。但是我们为了防止sql注入,会用#{字段}来放入参数,什么是sql注入呢,sql注入是比较常见的网络攻击方式之一,它不是利用操作系统
2021-11-24 22:29:23
1619
原创 前端入门需要掌握的知识(学习总结,边学边总结)
前端入门需要掌握的知识(学习总结,边学边总结)写在前面 本人java开发工程师,闲时抽空学习前端,前端萌新一个,此文章是在学习过程中做的随手笔记,并非教学文章,如有哪里不对请大幅篇章的指出来,望见谅,谢谢!????1.插件使用工具:VSCodeAuto Rename Tag(同事修改标签两端)Chinese (Simplified) (简体中文)htmltagwrap(修改tag)Live Server(修改代码保存时自动刷新网页)View In Browser(右
2021-11-14 12:41:37
1015
原创 linux常用操作
写在前面虽然平时大部分工作都是和Java相关的开发, 但是每天都会接触Linux系统, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行环境中. 自己记忆力不好, 很多有用的Linux命令不能很好的记忆, 现在逐渐总结一下, 以便后续查看.基本操作Linux关机,重启关机shutdown -h now重启shutdown -r now查看系统,CPU信息查看系统内核信息uname -a查看系统内核版本cat /proc/version查看当前用户环境变量envcat /
2021-11-08 16:21:24
463
原创 MAC M1安装docker并拉取mysql镜像
MAC M1安装docker并拉取mysql镜像inter芯片和m1芯片安装docker方式些许不同,本次我只记录m1安装docker和拉取镜像Docker常用命令拉取镜像:docker pull [镜像名/版本号]搜索镜像:docker search [镜像名]查看镜像: docker images [-a 所有images /f 过滤(使用较少)/q 只显示images ID]删除镜像: docker rmi [镜像ID/镜像名]删除所有镜像:docker rmi $(docker im
2021-09-12 12:22:18
4339
1
原创 引入自定义jar包
川哥给的两个交接任务,代码拉到本地后川哥自己写的jar包引入不到项目中,按照路径放到对应的位置还是会报找不到对应jar包的错误 其实maven引入自定义jar包并不是简单地放到路径中,简单思路就是,需要把自定义的jar包install进maven的依赖仓库,然后在pom中直接引入依赖 首先是要配置maven的环境,我的是mac M1的配置方法,先进入这个文件,第一次进入是新建vim ~/.zshrc 编辑在后边追加export MAVEN_HOME=/Users/gzs/Doc.
2021-08-21 00:47:44
375
原创 @Transaction和try catch
对于@Transactional可以保证RuntimeException错误的回滚,如果想保证非RuntimeException错误的回滚,需要加上rollbackFor = Exception.class 参数 try catch 对回滚本身没影响,但是会对异常是否可以被@Transactional感知到有影响, 1.可以将try catch到的错误向上抛,就可以起作用 @Override @Transactional(rollbackFor = Exception.cl
2021-08-20 14:45:00
1510
1
原创 java Utils合集(后续会一直补充)
HttpClientUtils(通用)package com.saic.utils;import java.io.IOException;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import java.util.ArrayList;import java.util.List;import java.util.Map; import org.apache
2021-06-04 16:38:23
284
原创 java UDTF调用接口得到xml,并解析xml文件
UDTF调用接口得到xml,并解析xml文件UDTF实现的是返回返回多条数据,UDTF(User-Defined Table-Generating Functions) 用来解决 输入一行输出多行(On-to-many mapping) 的需求。UDTF需要实现三个方法initialize(定义返回数据的类型,个数),close(清理),process(真正的处理过程,每调用一次forward就会产生一行数据,)例子:调用接口(参数为xml)获取到xml数据,并将xml数据解析出来,经过UDTF来输出
2021-05-28 15:50:29
433
原创 Mybatis出现You have an error in your SQL syntax; check the manual that corresponds to your MySQL....
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''table1111' ( 'n
2021-04-20 17:04:48
1184
原创 ElasticSearch常规操作
day07_导入数据到索引库0.学习目标理解索引库数据结构设计能够把商品数据导入到索引库能实现搜索补全功能能实现基本搜索功能1.ElasticSearch的starter(了解)ElasticSearch的异步API代码编写比较复杂,因此我们需要封装成工具,方便后期的使用。而且最好与SpringBoot整合,完成自动配置的starter。最终达成与MybatisPlus一样的效果:用户定义接口并继承我们的接口,获取CRUD的方法我们实现接口中的方法通过动态代理来代理用户接口,并注入
2021-03-03 14:19:01
763
原创 ElasticSearch 高级
ElasticSearch 高级今日目标:ElasticSearch 高级操作ElasticSearch 集群管理1 ElasticSearch查询ElasticSearch的强大之处就在于它具备了完善切强大的查询功能。搜索相关功能主要包括:基本查询分词查询词条查询范围查询布尔查询Filter功能source筛选排序分页高亮聚合官方文档:https://www.elastic.co/guide/en/elasticsearch/client/java-
2021-03-03 11:50:29
2218
原创 ElasticSearch
ElasticSearch 基础学习目标理解什么是倒排索引理解什么是ES搜索引擎掌握ES搜索引擎的索引库操作掌握ES搜索引擎的类型映射掌握ES搜索引擎的文档操作1 搜索技术搜索技术在我们日常生活的方方面面都会用到,例如:综合搜索网站:百度、谷歌等电商网站:京东、淘宝的商品搜索软件内数据搜索:我们用的开发工具,如Idea的搜索功能这些搜索业务有一些可以使用数据库来完成,有一些却不行。因此我们今天会学习一种新的搜索方案,解决海量数据、复杂业务的搜索。1.1 关系型数据库搜索1
2021-03-03 11:47:43
760
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人