后台java
用心去追梦
这个作者很懒,什么都没留下…
展开
-
MySQL 实现一个字段赋值给另一个字段
不同表一列复制到另一个列原创 2022-06-21 10:54:21 · 1940 阅读 · 0 评论 -
Java获取当前时间前几个月、季度
package com.example.zjtz.util;import java.time.LocalDate;import java.util.ArrayList;import java.util.List;/** * 获取当前前12个月,4个季度工具类 */public class PortalDateUtil { //获取当前12个月 public static List<String> getLatest12Month(LocalDate date,原创 2022-03-10 15:40:06 · 1841 阅读 · 0 评论 -
如何设计登录接口,十分钟内连续登录5次失败,需要等待30分钟才能登录
正常业务里的实现不能这样搞,合适的方法是走缓存,比如使用redis,我当时就只有原生Java API能用,请大家把这个当成算法题来看待常言道:字数越短问题越大。 今天阿里的面试官小哥哥让我实现一个登录接口,同一个用户10分钟内连续登陆5次失败,则需要等到30分钟才能登陆。 当然大佬估计一看到这种题目会很难过,一丁点算法都没有,妙解没意思。我上来就被唬住了。登录接口?10分钟内连续5次??等待30分钟才能登陆???登陆验证???? 问号一下子就冒出来了,当然最开始我想定义一个变量firstFai转载 2022-01-03 10:21:17 · 568 阅读 · 2 评论 -
Springboot 解决跨域的四种姿势
Springboot 解决跨域的四种姿势姿势一实现WebMvcConfigurer#addCorsMappings的方法import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebM原创 2021-12-17 13:42:18 · 126 阅读 · 0 评论 -
根据redis自增生成全局唯一订单id
根据redis自增生成全局唯一订单idpackage com.example.springbootshardingjdbc.util;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;public class MyUtil { public static String currentDateTime(){ LocalDateTime localDateTime=LocalDat原创 2021-12-09 10:27:08 · 544 阅读 · 0 评论 -
File转化为MultipartFile
File 转 MultipartFile引入以下依赖:<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version></dependency>下面是具体代码:package com.leiyuke.fil原创 2021-11-26 14:13:49 · 7022 阅读 · 5 评论 -
注解@CrossOrigin解决跨域问题
注解@CrossOrigin 出于安全原因,浏览器禁止Ajax调用驻留在当前原点之外的资源。例如,当你在一个标签中检查你的银行账户时,你可以在另一个选项卡上拥有EVILL网站。来自EVILL的脚本不能够对你的银行API做出Ajax请求(从你的帐户中取出钱!)使用您的凭据。跨源资源共享(CORS)是由大多数浏览器实现的W3C规范,允许您灵活地指定什么样的跨域请求被授权,而不是使用一些不太安全和不太强大的策略,如IFRAME或JSONP。回到顶部一、跨域(CORS)支持: Spring Frame转载 2021-06-25 22:31:51 · 2221 阅读 · 0 评论 -
Redis事务操作
Multi 开启事务EXEC 提交事务Watch 可以监听一个或者多个key,在提交事务之前是否有发生了变化 如果发生边了变化就不会提交事务,没有发生变化才可以提交事务 版本号码 乐观锁watch namemultiset name xiaoxiaoexecDiscard 取消提交事务注意:Redis官方是没有提供回滚方法, 值提供了取消事务。Redis中本身就是单线程的能够保证线程安全问题。取消事务跟回滚有什么区别呢?为什么redis不支持回滚事务,Mysql中开启了事务,对该行原创 2021-06-22 17:29:05 · 59 阅读 · 0 评论 -
Redis中的自动过期机制
实现需求:处理订单过期自动取消,比如下单30分钟未支付自动更改订单状态实现方案1:使用Redis Key自动过期出发事件通知使用定时任务30分钟后检查按照每分钟轮训检查原创 2021-06-22 17:26:25 · 152 阅读 · 0 评论 -
Redis内存淘汰策略
将Redis用作缓存时,如果内存空间用满,就会自动驱逐老的数据。Redis六种淘汰策略noeviction:当内存使用达到阈值的时候,所有引起申请内存的命令会报错。allkeys-lru:在主键空间中,优先移除最近未使用的key。(推荐)volatile-lru:在设置了过期时间的键空间中,优先移除最近未使用的key。allkeys-random:在主键空间中,随机移除某个key。volatile-random:在设置了过期时间的键空间中,随机移除某个key。volatile-ttl:在设置了原创 2021-06-22 17:24:46 · 73 阅读 · 0 评论 -
MySQL与Redis一致性解决同步问题
SpringBoot整合Redis的注解版本@RestControllerpublic class MemberController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/findMemberAll")@Cacheable(cacheNames = "member", key = "'findMemberAll'")public List<MemberEntity> findMemberAll() {原创 2021-06-22 17:22:58 · 160 阅读 · 0 评论 -
Redis持久化机制 -全量同步与增量同步的区别
全量同步与增量同步的区别全量同步:就是每天定时(避开高峰期)或者采用一个周期实现将数据拷贝到一个地方也就是Rdb存储。增量同步:比如采用对行为的操作实现对数据的同步,也就是AOF。全量与增量的比较:增量同步比全量同步更加消耗服务器的内存,但是能够更加的保证数据的同步。RDB与AOF实现持久化的区别Redis提供了两种持久化的机制,分别为RDB、AOF实现,RDB采用定时(全量)持久化机制,但是服务器因为某种原因宕机后可能数据会丢失,AOF是基于数据日志操作实现的持久化,所以AOF采用增量同步的方案原创 2021-06-22 17:20:32 · 2946 阅读 · 0 评论 -
Spring Boot系列四 Spring @Value 属性注入使用总结一
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...转载 2018-11-29 10:29:47 · 259 阅读 · 1 评论 -
SpringBoot整合Redis
方案1:在Redis存放一个对象 使用json序列化与反序列化方案2:直接使用redis自带序列化方式存储对象方案1存储jsonMaven依赖 org.springframework.boot spring-boot-starter-parent 2.0.1.RELEASE org.apache.commons commons-lang3 org.projectlombok原创 2021-06-22 17:14:00 · 55 阅读 · 0 评论 -
Redis数据结构
String类型、Hsh类型、List类型、Set类型 、Sorted-Sets./redis-cli -h 192.168.212.155 -p 6379 -a 123456String类型String是redis最基本的类型,一个key对应一个value,sring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象, Sring类型是Redis最基本的数据类型,一个键最大能存储512MB。Set name mayiktGey name mayik原创 2021-06-22 17:12:35 · 65 阅读 · 0 评论 -
java 国外博客地址,查问题方便
https://www.coderanch.com/c/java原创 2021-06-22 14:02:35 · 110 阅读 · 0 评论 -
在哪里可以找到用于读取 YML 配置文件的 Spring 文档
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#application-properties原创 2021-06-22 14:00:34 · 119 阅读 · 0 评论 -
找不到jar包的解决方法
1.将报错的包所在的位置删除下面的包2.重新Reimport原创 2021-06-22 10:06:52 · 1133 阅读 · 0 评论 -
java aop 切面判断对象是否是一个类的实例
for(Object obj:joinPoint.getArgs()){if(!obj.getClass().equals(ShiroHttpServletRequest.class)) {String ID= ((BaseVO) obj).getAuth().getEmpId();request.setAttribute(CommonConstant.CRM_EID,ID);}}原创 2021-06-21 10:14:30 · 361 阅读 · 0 评论 -
HttpServletRequest 解析获取JSON数据
HttpServletRequest req=(HttpServletRequest)args0;ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (null != attributes) {HttpServletRequest request = attributes.getRequest();String result=原创 2021-06-18 16:44:50 · 6847 阅读 · 0 评论 -
Java资源总结
Java资源汇总官方文档jdk官方文档https://docs.oracle.com/javase/specs/jls/se8/html/index.htmlhttps://docs.oracle.com/javase/specs/jvms/se8/html/index.htmlmybatis3 官网https://mybatis.org/mybatis-3/spring官网https://spring.io/projects1234567892. java技术社区原创 2021-06-17 22:40:08 · 91 阅读 · 0 评论 -
java程序运行堆栈分析
java程序源代码与字节码源代码public class StackHeapAnalysis {// java 运行堆栈分析public static void main(String[] args) { //define my wallet totel balance int balance = 500; // birthday cake int cakeVal = 99; int cakeNum = 1; // birthday flo.转载 2021-06-17 22:33:49 · 76 阅读 · 0 评论 -
后端程序员工作经验总结
工作已经3年有余,这3年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这3年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东西,为大家分享一下。经过3年意识到以前也有很多认识误区,比如:偏爱收集,经常收集各种资料视频塞满一个个硬盘,然后心满意足的看着容量不行动。不重基础,总觉得很多基础东西不需要再看了,其实不懂的地方很多,计算机程序方面任何一个结果都必有原因,不要只会用不知道原理,那是加工厂出来的。现在ide查看代码原创 2021-06-17 22:27:38 · 725 阅读 · 0 评论 -
RedisTemplate方法的一些简单运用
import java.util.concurrent.TimeUnit;import javax.annotation.Resource;import org.springframework.data.redis.core.RedisTemplate;public class RedisServer {@Resource(name = “redisTemplate”)RedisTemplate<String, Object> redisTemplate;/*** 获取缓存的地址原创 2021-06-17 10:55:01 · 152 阅读 · 0 评论 -
如何通过redisTemplate获得key的过期时间
/**从redis中获取key对应的过期时间;如果该值有过期时间,就返回相应的过期时间;如果该值没有设置过期时间,就返回-1;如果没有该值,就返回-2;*/public Long getExpire(final String key) {return redisTemplate.opsForValue().getOperations().getExpire(key);}...原创 2021-06-17 10:46:30 · 4785 阅读 · 0 评论 -
绿盟安全扫描--检测到目标站点存在javascript框架库漏洞
解决方法:升级jQuery版本到3.3.4,再次扫描,问题就解决了原创 2021-06-16 16:45:31 · 1029 阅读 · 0 评论 -
Java高级工程师学习路径
第一章 多线程并发编程1.1 Java基础1.1.1 JAVA程序运行堆栈分析1.1.2 线程状态1.1.3 线程中止1.1.4 内存屏障和CPU缓存1.1.5 线程通信1.1.6 线程封闭之ThreadLocal和栈封闭1.1.7 线程池应用及实现原理剖析1.2 线程安全之可见性问题1.2.1 使用volatile解决可见性问题及阻止指令重排序1.2.2 线程安全之共享资源 / 不可变性 / 竟态条件 / 临界区1.2.3 线程安全之原子操作1.2.4 Atomic相关类和CAS原创 2021-06-16 14:49:39 · 249 阅读 · 0 评论 -
SpringCloud之Feign源码分析
启动时Feign的处理启动类上使用了@EnableFeignClients注解,我们来看下这个注解在哪里使用了,使用idea只要在EnableFeignClients类上按住command同时点击类名就可以查看到这个类在哪里使用了,发现除了启动类,只在FeignClientsRegistrar类中引用了EnableFeignClients。debug可以发现,当应用启动时会首先调用FeignClientsRegistrar的registerBeanDefinitions()方法。@Overridep转载 2021-06-16 14:19:44 · 311 阅读 · 0 评论 -
feign原理分析
原创 2021-06-16 14:16:34 · 61 阅读 · 0 评论 -
IDEA设置GIT忽略文件提交
;.iml;.idea;原创 2021-06-16 14:03:30 · 151 阅读 · 0 评论 -
Properties 转YAML
https://www.toyaml.com/index.html原创 2021-06-15 17:55:43 · 7649 阅读 · 0 评论 -
Java基础知识总结
Java基础知识总结(超级经典)写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。demo4,该技术什么时候用?test。——————————————————————————————————————————————————————一:java概述:1991 年Su转载 2021-06-14 20:52:20 · 75 阅读 · 0 评论 -
封装,继承,多态
一,前言 今天总结一下关于Java的三大特性,封装,继承,多态。其实关于三大特性对于从事编程人员来说都是基本的了,毕竟只要接触Java这些都是先要认识的,接下来就系统总结一下。二,封装 先来说说特性之一:封装2.1,什么是封装 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。将类的某些信息隐藏在类的内部,不允许外部程序进行直接的访问调用。通过该类提供的方法来实现对隐藏信息的操作和访问。隐藏原创 2021-06-13 09:28:44 · 108 阅读 · 0 评论 -
开源 RPC 框架有哪些呢?
开源 RPC 框架有哪些呢?一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的。跟语言平台绑定的开源 RPC 框架主要有下面几种。Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。Tars:腾讯内部使用的 RPC 框架,于 2017 年对外开源,仅支持 C++ 语言。Spring Cloud:国外 Pivotal 公司 2014原创 2021-06-10 19:37:17 · 664 阅读 · 0 评论 -
TCP三次握手、四次挥手过程及原理
TCP 协议简述TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。TCP包首部网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协转载 2021-06-10 18:51:40 · 2897 阅读 · 0 评论 -
MySQL 乐观锁与悲观锁
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则会被block。乐观锁乐观锁(Optimistic Lock),顾名思义,就是很乐观,每次去拿数据的时候都认为别人转载 2021-06-10 15:30:59 · 61 阅读 · 0 评论 -
SQL慢查询优化
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。本人从13年7月份起,一直在美团核心业务系统部转载 2021-06-10 15:21:39 · 460 阅读 · 0 评论 -
MySQL事务隔离级别和实现原理
经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?本文就帮大家梳理一下。MySQL 事务本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的。数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作,有点一不做二不休的意思。假设一个网购付款的操作,用户付款后要涉及到订单状态更新、扣库存以及其他一转载 2021-06-10 15:01:48 · 83 阅读 · 0 评论 -
事务的四个特性-ACID
事务的四个特性-ACID事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性的定义和完整性约束有关系。这些月数可能包括主键约束、外键约束以及用户自定义的约束。事务执行的前后都是合法的数据状态,不能违背任何的数据完整性。这种完整性体现在业务原创 2021-06-10 14:42:08 · 802 阅读 · 0 评论 -
MySQL 中 MyISAM 中的查询为什么比 InnoDB 快?
MySQL 中 MyISAM 中的查询为什么比 InnoDB 快?关于,这个问题,我网上看了很多答案。大多内容都雷同,但是我要强调的是,并不是说 MYISAM 一定比 InnoDB 的 select 快。其实呢?MyISAM 适合读多,并发少的场景;这个问题要分场景来看。不同的场景,还真不能说 MyISAM 比 InnoDB 中的查询快!下面我们一起来看看 Innodb 和 Myisam 的 5 大区别:上面的“事务”写错了。不过,我相信大家能看明白其中的解释。关于“行锁”还是“表锁”,可以看我原创 2021-06-10 14:32:43 · 2213 阅读 · 0 评论