![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 51
希风雨
游泳健身了解一下
展开
-
Java 接口多实现动态调用
定义一个实体类,实体类里面包含了两个泛型实现 implements ImportingData。还有种方法就是给每一个实现类定义业务类型的枚举,这时候子啊接口里面就得多写一个返回枚举的实现。这里获取每一个实现以及对应的泛型类组成map,这样就能根据map特性动态调用。目前本文使用的是根据泛型类实现动态调用,在引入时必须明确是那个实体类,简单定义一个接口,做数据插入。原创 2023-09-26 11:48:54 · 396 阅读 · 0 评论 -
java 对mybatis拦截Interceptor进行权限控制(条件修改),入参修改,返回修改
使用jsqlparser对sql解析拼装基础准备<dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>4.5</version> <scope>compile</scope></dependency><原创 2023-09-22 18:01:57 · 805 阅读 · 0 评论 -
Java 解析binlog实现数据同步增量等操作
相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小鱼statement产生的日志量,但是考虑到如果带条件的update操作,以及整表删除,alter表等操作,row格式会产生大量日志,因此在考虑是否使用row格式日志时应该根据应用的实际情况,其所产生的日志量会增加多少,以及带来的IO性能问题。缺点:所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容。显示主服务器使用的二进制文件及大小。原创 2023-04-04 12:07:53 · 4980 阅读 · 8 评论 -
java代替switch的办法?
首先我们要知道switch中需要执行什么方法,以及用到的参数,返回值之类的。之后使用map将接口实现。之后创建一个接口,下面。原创 2022-08-19 10:55:43 · 1595 阅读 · 0 评论 -
java中集成sockjs、stomp前端pc(vue)、h5和微信小程序连接
后端代码import cn.hutool.core.util.ObjectUtil;import cn.hutool.core.util.StrUtil;import lombok.AllArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.context.annotation.Configuration;import org.springframework.messaging.Message;i原创 2022-05-12 16:24:33 · 2289 阅读 · 2 评论 -
java8(流操作)对list属性去重与两list根据条件匹配
一、对两个list中的对象中的某个属性值进行对比,之后操作相同属性的两个对象方法一 //将需要对比的值单独拎出来放到map中,其中就是将RealNameUploadRecord中queryStatusToken作为key Map<String, RealNameUploadRecord> collect1 = list.stream().collect(Collectors.toMap(RealNameUploadRecord::getQueryStat原创 2022-04-01 14:58:48 · 10762 阅读 · 0 评论 -
RestTemplate上传多文件(转存URL文件)
将网络文件链接转成输入之后上传 /** * * @param list 为网络文件地址 * @return */public JSONObject uploadFiles(List<String> list) { ArrayList<CommonInputStreamResource> commonInputStreamResources = new ArrayList<>(); list原创 2022-03-02 11:17:03 · 993 阅读 · 0 评论 -
java中RSA工具类(分段)不对称加密
东拼西凑,方得真(先收藏万一以后要用类)import org.apache.commons.codec.binary.Base64;import org.apache.commons.io.IOUtils;import javax.crypto.Cipher;import java.io.ByteArrayOutputStream;import java.nio.charset.StandardCharsets;import java.security.*;import java.secur原创 2021-11-19 09:59:26 · 902 阅读 · 0 评论 -
java使用druid配置多数据源(获取数据库源) AbstractRoutingDataSource
书接上文使用nacos配置多数据源(druid)AbstractRoutingDataSource需要先阅读此篇文章根据配置文件切换数据源讲了,但对于某些特殊场景可能依旧有点问题,比如通过数据源生成代码,导出文档什么的,可能会有多个数据源,而且这些数据源肯定是不会走nacos的所以就有了本篇文章,写的很糙请谅解,可以自己优化修改了多数据源bean的配置类import com.alibaba.druid.pool.DruidDataSource;import org.apache.commons.la原创 2021-09-26 11:45:40 · 3779 阅读 · 1 评论 -
java spring security oauth2 动态 修改当前登录用户的 角色以及权限(无需重新登录)
/** * 动态修改自身权限,无需重新登录 * @return */ @PostMapping("/oneselfUpdateAuth") public R oneselfUpdateAuth() { //获取当前用户信息 BaseUser users = SecurityUtils.getUser(); //token存放的地方 RedisTokenStore tokenStore = new RedisTokenStore(redisConnectionFac原创 2021-08-31 11:38:52 · 3645 阅读 · 7 评论 -
浙政钉2.0应用接入流程(专有钉钉)免登
专有钉钉开放平台浙政钉省级以及各地市应用技术支持群号浙政钉省级以及各地市应用技术支持钉钉群号省本级:群号:31431551杭州:群号:34302232(1群) 35426643(2群)嘉兴:群号:33291068湖州:群号:35381358绍兴:群号:34829275金华:群号:35984633宁波:群号:34049171舟山:群号:34049228温州:群号:31376536台州:群号:34504434衢州:群号:34286499丽水:群号:33869997按照官方文档中的原创 2021-07-09 15:10:59 · 19409 阅读 · 31 评论 -
java发送post请求以raw形式和 Params形式发送2.0(RestTemplate)
两种形式无非一个是放在body里面,一个是以问号拼接放在链接后面raw形式(body里面) RestTemplate restTemplate = new RestTemplate(); //请求头 HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.add("Content-Type", "application/json; charset=UTF-8"); //参数 Map map原创 2021-07-09 11:36:07 · 5404 阅读 · 2 评论 -
jenkins搭建
推荐:君哥的学习笔记里面的有些步骤可以使用宝塔面板创建记住不要用root用户去运行jenkins创建一个jenkins用户原创 2021-06-25 16:09:42 · 121 阅读 · 0 评论 -
java spring cloud 使用nacos配置多数据源(druid)AbstractRoutingDataSource
第一步、在nacos中加入spring: datasource: master: url: jdbc:mysql://base-mysql:3306/XXX?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTime原创 2021-06-25 15:59:49 · 5270 阅读 · 0 评论 -
解决:Could not find artifact com.sun:tools:jar:1.8.0 at specified path
从字面意思来看是缺少tools:jar寻找的地方是c盘,可实际上我将jdk安装在了d盘目录<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.8.0</version> <scope>system</scope> <systemPath>${java.home}/原创 2021-06-25 15:14:03 · 7153 阅读 · 1 评论 -
动态获取nacos配置文件
导入依赖<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId></dependency>在启动类添加:dataId 为nacos的配置文件的dataId@NacosPropertySource(dataId = "dd-salaryother-api",aut原创 2021-06-01 17:26:41 · 1511 阅读 · 0 评论 -
java后台long转string发送给前端
第一种@JsonSerialize(using = ToStringSerializer.class)private Long id;第二种import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.module.SimpleModule;import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;imp原创 2021-06-01 14:20:21 · 1089 阅读 · 2 评论 -
Could not find artifact com.sun:tools:jar:1.8.0解决方法
这个问题莫名其妙的好像是找不到这个jar包有人说把父项目install一下,关键我项目没有父项目所以gg百度了一下有人说把jdk中的tools复制到maven仓库中,发现没啥用(好像是有用的,根下面哪种方式其实是一样的)最终解决了问题是在pom文件加<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version&g原创 2021-05-08 17:39:35 · 2322 阅读 · 0 评论 -
内网穿透NPS搭建以及穿透到本地虚拟机中的linux
本文就以穿透到本地虚拟机中的宝塔界面为准准备工作 自然需要一台阿里的服务器nps的客户端和服务端nps地址我下载的是linux 64版本的虚拟机一台第一步将服务端压缩包放入阿里服务器可以在opt目录下创建一个文件夹发放进去,这里我用的是xshll和xftp处理的,之后解压到当前文件夹 tar -zxvf 压缩文件名.tar.gz,之后使用nps install进行安装,安装的nps将存在于etc目录下,进入etc/nps/conf这个目录,打开nps.conf这个文件vi nps.conf,注意其中原创 2021-03-17 14:15:32 · 1326 阅读 · 1 评论 -
简单生成全局唯一id(基于雪花算法)
ps:系统时间被回调可能会照成id重复<dependency> <groupId>com.baomidou </groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.1</version></dependency>只要导入mybatis-plus再使用IdWorker这个类import com.baomidou.m原创 2020-12-04 15:43:35 · 1746 阅读 · 0 评论 -
java发送post请求以raw形式和 Params形式发送
在对接第三方平台时遇到了好几个坑,,发送raw形式的请求时一直返回参数不存在搞得我欲不痛生,,,,最后用另一种方法实现了 /** * header 在传输header时请务必加上charset=utf-8; * "Content-Type: application/x-www-form-urlencoded;charset=utf-8\n" */ public static final String HEADER = "Acc原创 2020-09-04 08:36:58 · 11121 阅读 · 15 评论 -
java springboot 异步处理@Async简单使用与线程池简单使用
当数据处理过大,无法在页面失去连接之前返回页面,就容易出现连接超时的情况@Async简单使用在springBoot的启动类添加注解@EnableAsync之后在需要使用异步的方法上使用@Async注解异步的调用不能在同一个类中,必须在一个类中的方法去访问另一个类中加了@Async注解的方法之后就能用了给@Async添加自定义线程池在springBoot的启动类添加一个线程池如:@Bean("taskExecutor") public ExecutorService Ex(){原创 2020-09-01 21:44:08 · 661 阅读 · 0 评论 -
分布式锁redisson简单实例
最近遇到一个业务,就是 需要获取数据库最新的一条数据,通过计算之后,新增入数据库数据库,由于可能会遇到并发问题就就决定用redisson搭配IdWorker进行倒叙查询,这样获取到的数据永远都是最新的使用redisson的前提是要安装redis的导入依赖 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-sprin.原创 2020-09-01 16:22:34 · 760 阅读 · 0 评论 -
Java的Arrays.sort()方法到底用的什么排序算法
Java的Arrays.sort()方法到底用的什么排序算法暂时网上看过很多JDK8中Arrays.sort的底层原理,有些说是插入排序,有些说是归并排序,也有说大于域值用计数排序法,否则就使用插入排序。。。其实不全对。让我们分析个究竟:// Use Quicksort on small arraysif (right - left < QUICKSORT_THRESHOLD){ //QUICKSORT_THRESHOLD = 286 sort(a, left,转载 2020-08-16 17:08:43 · 2494 阅读 · 0 评论 -
java idea将json转实体类,将实体类转json,将数据库数据导出成json格式
在使用postman做接口测试时面对那些需要传输各种结构的json时我陷入了用手敲数据的体力劳动,为了解决这一尴尬局面我找到了一些工具idea插件推荐ps:配合GsonFormat将json转换为实体类就是完美闭环我使用了POJO to SON这个插件将实体类的数据转换成json,这样就得到了json的整体数据结构就比如{"actionTime": "str","verifyCode": "str","uutids": {"pid": "str","tid": "str"},"o原创 2020-08-16 16:57:50 · 3293 阅读 · 0 评论 -
Java8并行流ParallelStream示例
最近对接一个接口需要把对面的产品以及产品详情都当过来,获取产品很好获取只要设置分页就能批量下载下来,但产品详情需要一个个的去访问List<Product> synchronizedList = Collections.synchronizedList(list);List<PftTicketInfo> pftTicketInfos = Collections.synchronizedList(new ArrayList<>());synchronizedList.s原创 2020-08-12 16:18:35 · 1236 阅读 · 1 评论 -
@Validated校验list集合失效解决方法
public AjaxResult batchStorage(@Validated @RequestBody ValidList<OtaLsProductTicket> otaLsProductTicket)import lombok.Data;import javax.validation.Valid;import java.util.*;@Datapublic class ValidList<E> implements List<E> { @原创 2020-08-10 16:42:15 · 3910 阅读 · 0 评论 -
pagehelper分页插件踩坑
在进行多表关联时如一对多数据时,获取的分页数据是异常的,需要用resultMap来接收在数据传输给前端时数据必须是同一个,不能拼接时赋值给其他对象之后返回,否则会造成分页异常resultMap中的一对多collection嵌套不能三层以上,否则第三层查不出数据,需要提出来从新写一个resultMap...原创 2020-08-10 16:39:08 · 257 阅读 · 0 评论 -
java获取30天后时间-时间格式注解-时间格式转换
注解@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")@DateTimeFormat(pattern="yyyy-MM-dd")private Date date;@JsonFormat:获取数据库时间格式化一下,因为数据库时区与标准时区相差八小时 所以GMT+8 后面即是时间格式如:yyyy-MM-dd@DateTimeFormat:Date类型想要限定请求传入时间格式时,可以通过@DateTimeFormat来指定,但请求传入参数与指原创 2020-08-09 17:49:24 · 5030 阅读 · 0 评论