- 博客(137)
- 资源 (19)
- 收藏
- 关注

原创 shiro权限认证及授权的执行流程分析及图解(一)
(配置文件请看下一个博客)https://blog.youkuaiyun.com/weixin_41716049/article/details/84336696为了颜色标识注释,前面没有使用代码框,多多担待《一,认证》1.先建两个class文件 一个写AuthRealm (授权与认证方法,并继承)extends AuthorizingRealm获取其默认方法doGetAu...
2018-11-22 11:45:24
33253
25
原创 基于JAVA实现机器人自动向微信发送消息,并通过SpringBoot整合RabbitMQ实现自动消费,推送消息
Java中Robot类位于java.awt.Robot,该类用于为测试自动化,自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件,Robot类的主要目的是便于Java平台实现自动测试。1,实现给微信好友发送消息的原理就是利用微信的快捷按键,Robot类就可以很好的控制按键。重点提示:使用robot模拟按下像Ctrl,退格键,删除键这样的功能性按键,Robot可以模拟鼠标和键盘的输入,可以把他看作Java版的按键精灵。在按下后一定要释放,一定要释放,一定要释放。已经有该环境的不需要管。
2023-12-15 09:49:18
4114
1
原创 mybatisPlus批量更新multi-statement not allow问题
由控制台可见,其mybatis默认不支持多条语句的更新,需要设置相关属性。从社区里看到的解决方案大致思路为,先检查本地配置文件的url中是否配置了allowMultiQueries=true,如果配置了,但还是不起作用,再写一个配置类来解决。在配置类MyBatisPlusConfig中 (mybatis 的话就在MyBatisConfig中改,没有配置文件的话就加一个)添加如下配置就可以了。这个时候大多数情况下基本是可以解决问题了的,如果还是报错的话 就直接在配置文件中添加配置。
2023-05-30 17:35:52
1192
原创 领导:谁再用 Redis 实现过期订单关闭,立马滚蛋
使用 redis 过期监听或者 rabbitmq 死信队列做延时任务都是以设计者预想之外的方式使用中间件,这种出其不意必自毙的行为通常会存在某些隐患,比如缺乏一致性和可靠性保证,吞吐量较低、资源泄漏等。在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;那他们是怎么实现的呢?时间轮是一种很优秀的定时任务的数据结构,然而绝大多数时间轮实现是纯内存没有持久化的。
2022-12-29 09:02:29
351
原创 为什么不能使用bigdecimal的equals比较大小
通过以上代码示例,我们发现,在使用 BigDecimal 的 equals 方法对 1 和 1.0 进行比较的时候,有的时候是 true(当使用 int、double 定义 BigDecimal 时),有的时候是 false(当使用 String 定义 BigDecimal 时)。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。可以明确的告诉大家,以上这种写法,可能得到的结果和你预想的不一样!这种错误,相信聪明的读者一眼就可以看出问题,
2022-12-13 10:05:04
448
原创 通过宝塔的tomcat安装的java8如何配置环境变量
通过宝塔的tomcat安装的java8如何配置环境变量 1.打开 /etc/profile 文件
2022-12-13 09:50:26
1033
转载 Spring官方都推荐使用的@Transactional事务,为啥我不建议使用!
在之前的一个项目中,我就发现我们的 Service 层的事务全都失效了,一个 SQL 执行失败后并没有回滚,排查下来才发现,是因为一位同事新增了一个切面,这个切面里面做个异常的统一捕获,导致事务的切面没有捕获到异常,导致事务无法回滚。其实,如果大家有认真看过阿里巴巴出的那份 Java 开发手册的话,其实就能发现,其中的很多规约并不是完完全全容易被人理解,有些也比较生硬,但是其实,这些规范都是从无数个坑里爬出来的开发者们总结出来的。我们能做的就是,尽量可以通过机制或者规范,来避免或者降低这些问题发生的概率。
2022-12-13 09:45:50
486
原创 Java 字符串 split 的一个反直觉陷阱
最近生产环境遇到一个奇怪的数组下标越界报错,如下图代码所示,我们可以肯定的是 fieldName 变量不为空(不是空字符串,也不是 null),但是代码执行到读取 names[0] 变量的时候,抛出了一个 数组下标越界 (java.lang.ArrayIndexOutOfBoundsException) 的异常。异常信息如下图所示问题很简单,我们对一个字符串执行 split 方法之后,以过往其它编程语言(Go、PHP、Javascript、Dart 等)的使用经验来看,即使字符串为空,即使没有匹配到分隔符,
2022-12-13 09:41:39
658
转载 SpringCloud定时任务需要用redis实现分布式全局锁的相关操作
我们知道现在微服务很流行,为此,许多中小型企业都将自己以前的框架加以改造,其中以SpringCloud为最多,但是SpringCloud如果要加定时任务的话,在单台服务器上很好支持,但是涉及到集群服务(多台服务的话)就要用到分布式锁了,最简单的方案是用Redis,好了废话不多说,直接上代码.第四步:添加定时任务,这里是一秒执行一次,注意@Component要加上让系统扫描到,停用定时任务就把它拿掉!ok了,你可以部署集群了,至于怎么部署SpringCloud注意端口号要不一样,我这里不多说了.
2022-12-13 09:30:16
583
转载 关于spring coud hystrix超时问题
如果我们先请求B和C,再请求A,这时用默认的hystrix超时配置,不会超时,因为B和C再被A调用时,已经加载到spring的context中了。所以我们要做的就是扩大hystrix的超时时间设置,分析原因:因为spring的懒加载问题,如果我们在第一次请求时,牵扯到多个微服务的实例化问题时,就会出现超时,因为hystrix的默认超时时间是10ms。一般来说,如果只实例化一个服务,10ms的时间是没问题的,但大多数情况下,我们的业务会涉及多个模块,这时10ms的时间就不够用了。
2022-12-13 09:20:52
591
原创 Poi百万数据导出问题
百度知:oracle数据库java存储过程。Oracle数据库有执行简单java代码的能力,想到一套新的解决思路。思路:创建oracle数据库触发器,当表的数据发生变化的时候,触发器调用oracle数据库java存储过程,该过程调用程序中的接口,在我的项目中创建多数据源,如果orcale数据库中数据发生变化,java存储过程就会调用我的接口,我就同时查询出mysql数据和Orcale数据,通过java逻辑代码比对两个数据表的差异,进行相应的增删改操作,就实现了数据同步的过程。实现:1. 在plsqld
2022-07-15 14:04:45
310
原创 Java开发工程师2年需要掌握的基础知识
最近好不容易闲下来了,组上的小朋友问我工作两年了需要掌握什么,把我问到了,特意想了一下 两年的经验正常情况下需要掌握什么而不是只是会CRUD,简单归纳一下 做个记录吧.
2022-06-16 16:11:24
1004
原创 简单说明SpringBoot如何定制自己的bean
springboot每次使用都是直接autowire注入进去的,然后注入进去并不能set & get 来修改属性,这高度封装就产生了一个问题。像之前用Spring,在xml文件配置一下即可,但SpringBoot呢?以最常见的DataSource数据库为例。一般注入DataSource直接在application.properties配置一下数据源即可以使用,返回的为SpringBoot默认的数据源,号称史上最快的HikariDataSource。但假设我想修改里面的配置如何?比如为连接池起一个名字?
2022-06-16 16:01:36
622
转载 new Date(date).getTime()在苹果手机不兼容
今天遇到一个大坑。new Date(date).getTime(),用这个方法来获取时间戳,在手机上就是NaN,在Google浏览器就是没有问题!由于是真机调试,又费劲时间又久。就很纳闷,这么简单的方法到底错在哪了。加班寻找解决办法,才在一个小角落发现,new Date(date).getTime()在苹果手机上是不兼容的。虽然是一个小小的兼容性问题,可是没有这个经验,耽误自己太长时间了。解决办法:new Date(data.replace(/-/g,'/')).getTime(
2021-11-25 10:20:50
1891
2
转载 程序员必会自己设计线性表(顺序表、链表)
本文分享自华为云社区程序员必会自己设计线性表(顺序表、链表)前言通过前面数据结构与算法基础知识我么知道了数据结构的一些概念和重要性,那么我们今天总结下线性表相关的内容。当然,我用自己的理解解分享给大家。其实说实话,可能很多人依然分不清线性表,顺序表,和链表之间的区别和联系!线性表:逻辑结构, 就是对外暴露数据之间的关系,不关心底层如何实现,数据结构的逻辑结构大分类就是线性结构和非线性结构而顺序表、链表都是一种线性表。 顺序表、链表:物理结构,他是实现一个结构实际物理地址上的结构。比如顺序.
2021-08-02 10:56:43
591
转载 JAVA——IO流入门:节点流与字符流
JAVA——IO流入门:节点流与字符流一,Filefile是文件和目录路径名的抽象表示1.1 File的用法用法:File file = new File("路径名");//如File file = new File("L:\\FileTestDemo\\AAA\\aaa.txt"); 注意:在windows中,路径名不能使用单个的\,单个的\为转义字符,可以使用\\,//或/1.2 File的常用方法 boolean createNewFile()
2021-08-02 10:53:03
206
原创 到底是先更新数据库还是先更新缓存?
本文分享自华为云博客:到底是先更新数据库还是先更新缓存?最近小伙伴最近都在问我,在系统中引入缓存后,当向数据库中写入数据时,是先写数据库还是先写缓存呢?先写数据库和先写缓存有什么区别吗?今天,我们就一起来聊聊这个话题。从本质上讲,无论是先写数据库还是先写缓存,都是为了保证数据库和缓存的数据一致,也就是我们常说的数据一致性。随着互联网的高速发展,当今时代已然从IT时代进入到DT时代。互联网系统架构也已经由最初的单体架构转变为分布式、微服务架构模式。从数据体量上来看,各系统存储的数据量越来越大,
2021-08-02 10:48:58
623
转载 Unity与Android Studio交互之 ✨ 获取手机权限(存储、录音、相机等)
Unity通过Android Studio 获取手机权限(存储、录音、相机等)本文分享自华为云社区Unity与Android Studio交互之 ✨ 获取手机权限(存储、录音、相机等),作者: jackwangcumt。常用权限<!--连接网络权限,用于执行云端语音能力 --><uses-permission android:name="android.permission.INTERNET"/><!--获取手机录音机使用权限,听写、识别、语义理解需...
2021-08-02 09:51:28
2207
转载 vue2.6+ 实现tinymce5富文本编辑器以及图片上传
安装tinymce npm install tinymce -S npm install @tinymce/tinymce-vue -S下载中文语言包地址:https://www.tiny.cloud/get-ti...下载选中的中文包下载完之后在项目里新建public文件夹1)在public目录下新建tinymce文件夹,并将下载的语言包解压到该目录下2)在node_modules里面找到tinymce,将skins目录复制到public/tinymce里面,目录如下:...
2021-08-02 09:47:35
942
1
转载 JDBCJava连接MySql数据库
【摘要】 JDBCJava连接MySql数据库 工具准备:Mysql(数据库)、 MyEclipse(开发工具)、Navicat(数据库管理工具) 对应的mysql驱动jar包(我的mql是8.0,所以用mysql-connector-java-8.0.13.jar) mysql-connector-java-8.0.13.jar包JDBCJava连接MySql数据库工具准备:Mysql(数据库)、 MyEclipse(开发工具)、Navicat(数据库管理工具)对应的mysql驱动jar包(
2021-08-02 09:36:25
193
转载 Java 实战:教你如何进行数据库分库分表
【摘要】 当前的应用都离不开数据库,随着数据库中的数据越来越多,单表突破性能上限记录时,如MySQL单表上线估计在近千万条内,当记录数继续增长时,从性能考虑,则需要进行拆分处理。而拆分分为横向拆分和纵向拆分。本文通过实际案例,说明如何按日期来对订单数据进行水平分库和分表,实现数据的分布式查询和操作。本文分享自华为云社区《数据库分库分表Java实战经验总结 丨【绽放吧!数据库】》,作者: jackwangcumt。 我们知道,当前的应用都离不开数据库,随着数据库中的数据越来越多,单表...
2021-08-02 09:32:59
3977
原创 阿里云语音电话工具类
package cc.mrbird.febs.common.utils;import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.dyvmsapi.model.v20170525.SingleCallByTtsRequest;import com.aliyuncs.dyvmsapi.model.v20170525.SingleCallByTtsResponse;import c.
2021-05-19 15:03:28
684
4
原创 Java并发编程的艺术——线程间的通信
多条线程之间有时需要数据交互,下面介绍5种线程间数据交互的方式,他们的使用处景各有不同。1. volatile、synchronized关键字PS:关于volatile的详细介绍请移步至:Java并发编程的艺术(3)——volatile1.1 如何实现通讯?这两种方式都采取了同步机制实现多条线程间的数据通讯。与其说是“通讯”,倒不如说是“同享变量”来的恰当。当1个同享变量被volatile修饰 或 被同步块包裹后,他们的读写操作都会直接操作同享内存,从而各个线程都能看到同享变量最新的值,也就
2021-01-12 09:54:59
168
原创 Nginx 502 Bad Gateway错误的原因分析与解决方法
一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现。以下是从Google搜集整理的一些Nginx 502错误的排查方法,供参考:Nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的。这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些出错都揽在自己身上了,着实让nginx的推广者备受置疑,毕竟从字眼上理解,bad gateway?不就是bad nginx吗?让不了解的人看到,会直接把责任推在nginx身
2021-01-12 09:49:14
5608
原创 详细分析Oracle数据库文件恢复与备份思路
任何数据库在长期使用过程中,都会存在一定的安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。当数据库发生故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随所发生的故障类型所影响的结构而变化。怎样才能对Oracle数据库进行备份?如何才能对删除的数据再进行恢复?这是本篇文章主要讲的内容。 Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。一个Orac
2021-01-12 09:43:02
206
原创 很全的java学习知识图谱-推荐一下
摘要:本文主要描绘了Java基础学习过程,给出Java知识结构图,以及阿里Java岗学习计划,对Java学习爱好者、准备及将要从事Java开发方面的同学大有裨益。温馨提示:由于优快云对图片的压缩,导致图片观看效果不理想,建议大家通过右键“在新标签页打开图片”进行观看或直接把图片下载下来观看。...
2021-01-08 09:38:09
671
原创 Linux为sh脚本文件添加执行权限
Linux为sh脚本文件添加执行权限chmod是权限管理命令change the permissions mode of a file的缩写。。u代表所有者,x代表执行权限。 + 表示增加权限。chmod u+x file.sh 就表示对当前目录下的file.sh文件的所有者增加可执行权限。...
2021-01-07 17:37:09
5459
原创 SpringBoot2.x 使用多数据源
一、说明项目是SpringBoot项目,主从数据源都是是MySQL数据库配置文件用的是yml,转properties也比较简单。二、POM依赖<!-- mysql jdbc --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46<
2020-12-17 09:34:41
405
原创 spring cloud 技术归纳
1. 什么是 spring cloud?spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。2. spring cloud 断路器的作用是什么?在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回
2020-12-14 13:47:31
723
原创 十大经典排序算法(动图演示)
0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 .
2020-12-14 11:20:17
180
原创 uniapp 调用原生(android)安卓的方法并接收返回值
需要实现的功能:点击uniapp页面view,传递参数,调用android原生代码,然后原生代码处理数据,返回到uniapp页面uniapp 代码:<template> <view class="content"> <view @click="androidNative">点击调用android原生方法</view> </view></template>&
2020-12-10 13:17:27
14908
2
转载 uniapp 小程序 aes前后端加密解密交互
小程序端1. 首先引入aes.js/** * [description] CryptoJS v3.1.2 * [description] zhuangzhudada sort out */var CryptoJS = CryptoJS || function(u, p) { var d = {}, l = d.lib = {}, s = function() {}, t = l.Base = { exten
2020-11-23 17:32:59
5367
3
转载 springboot 自定义注解使用AOP实现请求参数解密以及响应数据加密
一、前言本篇文章将依托与SpringBoot平台,自定义注解用来标识接口请求是否实现加密解密。使用AOP切面来具体操作解密加密,实现对源代码的低耦合,不在原基础上做很大的改动。本篇文章的所有示例,都上传到我的github中,欢迎大家拉取测试,欢迎stargithub实现要求:自定义一个注解@Secret,用来标识需要实现加密解密 作用在Controller类上,表示此Controller类的所有接口都实现加密解密 作用来单一方法上,表示此接口方法需要实现加密解密 使用AOP.
2020-11-23 17:28:47
7624
8
原创 Java实现异步调用方法(jdk1.8)
点击上方“秋秋秋影影影”,并“星标置顶” 喜欢我的都关注我了 阅读本文大约需要 30秒 jdk1.8开始的Future很多时候,我们需要调用一个耗时方法,但是我们并不需要等待它执行完,才继续后面的...
2020-10-26 16:38:23
7440
原创 您留在了一座城了吗?
点击上方“秋秋秋影影影”,并“星标置顶” 喜欢我的都关注我了 阅读本文大约需要2分钟 19年年初,只身一人来到了一座城市。这一呆,就是这么现在。今天,告别...
2020-09-22 09:37:39
245
原创 《像我这样的人》,到底是你听懂了吗?
点击上方“秋秋秋影影影”,并“星标置顶” 喜欢我的都关注我了 阅读本文大约需要2分钟 这个世界上有很多感受我们都描述不来。比如说心情会突然因为一首歌而低落,自己也会突...
2020-09-22 09:29:00
1220
原创 企业网站建设的重要性
点击上方“秋秋秋影影影”,并“星标置顶” 喜欢我的都关注我了 阅读本文大约需要2分钟 在一个网络时代,企业网上的形象即网站的形象,是十分重要的。它的定位与网页设计直接影...
2020-09-22 09:24:40
246
rocketmq安装包及RocketMQ 控制台JAR包
2023-10-18
谷歌浏览器替换官方的翻译插件
2023-06-07
cjpeg.exe optipng.exe jpegtran.exe文件
2023-03-20
绕线画 钉子画 勾线画 自动设计软件源码
2022-05-16
软件著作权代码文档自动生成器
2020-09-11
个人年度总结.doc
2020-01-02
jquery.i18n.properties.js.rar
2019-09-09
jdk1.8版本
2018-09-11
commons整理的常用的jar包,希望对你们有用
2018-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人