
Java
Leonis丶L
这个作者很懒,什么都没留下…
展开
-
Mybatis Cause: java.sql.SQLException: Invalid value for getLong()异常解析
首先,遇到这个问题的情况下就说明你的实体接收类重写了构造函数,并且你的构造函数无法对应上你的Sql查询语句。 我的Mybatis的版本是3.5.0 前阵子在用Mysql写select语句的时候,发生了Invalid value for getLong() 异常,Debug发现Mabatis在用Long类型为返回的Varchar赋值(这边赋值表示Mysql返回的Rs给Java的Entity赋值),用Long给String当然赋值不上,因此就报错了。 查...原创 2020-08-16 23:35:36 · 8690 阅读 · 3 评论 -
Mybatis 多数据源事务是否生效问题
我们所有的程序员应该都使用过事务注解 @Transactional ,面试的时候大家或多或少的都能说出来一些东西 比如: 1.事务的隔离级别 2.事务在哪些情况下不生效,比如加在类上,方法上(public,private,protected) 3.事务的配置使用 等等的一系列问题,大部分的小伙伴应该对这些方面也是了如指掌,对答如流了。...原创 2020-01-17 16:35:23 · 5043 阅读 · 0 评论 -
Spring 统一异常处理的方式
最近帮公司面试的时候,问的最多的问题就是Spring统一异常处理的方式你知道哪几种?这本身并不是一个很难的问题,说实话,会一种方式在工作中完全就可以了。毕竟每种的方式其实都是八九不离十的。 1:AOP处理 因为现在Spring Boot的流行,所以很多人第一个想到的都是AOP。这里不做过多的介绍,之前的一篇博客中有说过关于AOP的一些运行机制 Spring AOP @A...原创 2019-11-27 13:33:06 · 3951 阅读 · 0 评论 -
Redis 实现限流的三种方式
面对越来越多的高并发场景,限流显示的尤为重要。 当然,限流有许多种实现的方式,Redis具有很强大的功能,我用Redis实践了三种的实现方式,可以较为简单的实现其方式。Redis不仅仅是可以做限流,还可以做数据统计,附近的人等功能,这些可能会后续写到。第一种:基于Redis的setnx的操作 我们在使用Redis的分布式锁的时候,大家都知道是...原创 2019-05-30 23:37:24 · 54717 阅读 · 33 评论 -
RocketMQ 多个实例消息聚集在一个实例的坑
RT。上周有个问题一直未解决,先说需求:有A和B两个实例的RocketMQ,并不是集群关系。A的实例是服务器本地的RocketMQ,B的实例是阿里云上所购买的实例。在JAVA代码中,要做到往A发消息的时候也要往B推送消息。光看需求,其实so easy。因为自己对RocketMQ不是很了解,就“天真”的认为只是调用两个实例化对象的send方法而已。实际上这里蕴藏着一个深坑。用过Ro...原创 2019-05-20 21:06:56 · 11492 阅读 · 0 评论 -
RedisTemplate下Redis分布式锁引发的系列问题
自己的项目因为会一直抓取某些信息,但是本地会和线上经常一起跑,造成冲突。这其实就是我们常说的分布式集群的问题了,本地和线上的服务器构成了集群以及QPS为2的小并发(其实也不叫并发,不知道拿什么词形容?)。 首先,分布式集群的问题大家都知道,会造成数据库的插入重复问题,会造成一系列的并发性问题。 解决的方式呢也大概如下几点,百度以及谷歌上都能搜到的解决方式:...原创 2019-04-27 19:49:37 · 21554 阅读 · 19 评论 -
静态代理,jdk动态代理以及Cglib区别
众所周知,Spring AOP中涉及到了动态代理模式,那么有动态代理相应的就会有静态代理。那么动态代理分为哪几种,相对应的区别又是什么呢? 首先什么是代理? 找一个东西或者一个人去帮你做事,比如常说的中介就是一个代理,各大经销商的代理商等等。JAVA中的代理即是指将自己的事情委派给别人帮忙去完成。 静态代理:代理的是程序员已经创建好的类,也就是说当前仅...原创 2019-04-16 21:10:36 · 3745 阅读 · 0 评论 -
关于MySql的索引原理以及优化原则
在面试或者实际的工作中,我们都会遇到会需要优化MySql的场景,那么优化MySql的原理到底是什么呢。 曾经看过一篇公众号文章,具体阐述了MySql的优化原理,所以我的绝大部分见解是基于这篇文章之上,其他部分是自己参考了其他的博客包括查询了大量的资料获得的经验。 首先盗一张图来看下MySql的优化原理吧,方便大家更方便的理解MySql,以下是MySql的运行图...原创 2019-03-27 23:58:26 · 4604 阅读 · 0 评论 -
记录一下蚂蚁金服的电话面试
明知道自己肯定达不到阿里的要求的,所以自己把相关的面试问题都记录下来,以便以后复习使用。1.你常用的设计模式有哪些?2.工厂模式和策略模式的区别有哪些?3.什么情况下你会用工厂模式或者策略模式?4.RabbitMQ在你的服务中你是怎样使用的?5.消息的持久化如何实现?6.考虑多种特殊环境下,怎样使得消息不丢失,不重复消费?(服务宕机,队列溢出等情况)7.RabbitMQ...原创 2019-02-19 18:28:47 · 4451 阅读 · 0 评论 -
Rest风格下验证POST和GET请求
HTTP分为两种请求,GET以及POST。现如今,请求中都会带有大量的验证字符。 我验证的方式一般分为两种: 1。用当前的时间生成一个时间戳,然后用这个时间戳加盐的方式去用MD5或者其他的加密方式生成一个key。将这些字符传到后台以后后台接收这些参数,然后以特定的格式在后台再以同样的公式生成key,与前台传过来的key进行比对。 2。前台...原创 2019-01-09 23:44:14 · 5735 阅读 · 0 评论 -
mybaits一级缓存和二级缓存的实现
近来看了一下关于mybaits的一些缓存讲解的文章,然后自己也顺着文章看了一下mybaits底层的源码。(本文部分内容转载于美团的 聊聊MyBatis缓存机制 文章)目前而言,myabits是最流行的dao层框架,简洁,易上手,开箱即用,但是如果不了解一下底层的东西,可能会造成其他的问题。比如造成的脏数据。首先谈的肯定是mybaits的工作原理,大家都知道mybaits有一级缓存和...原创 2018-12-10 20:32:00 · 3869 阅读 · 0 评论 -
redis结合spring的事务使用
最近有一个需求,一个接口需要去包另外的3个接口,接口之间的数据相互联系相互依赖,如果有一个接口发生异常或者在主逻辑之中发生异常,那么所有此次产生的数据变化都需要回滚。-------------------------------------------------------------------------------------------------------------------...原创 2018-12-19 14:57:51 · 6005 阅读 · 0 评论 -
java指定线程执行顺序
众所周知,指定java线程的执行顺序一般都是通过线程间的join方法比如有3个线程,t1,t2,t3。如果我们需要将线程执行顺序调整为 t3 -> t2 -> t1。那么在t3的线程中加入t2.join,t2的线程中加入t1.join方式即可解决。第二种方式我们可以用线程池解决。public class ThreadYield extends Thread {...原创 2018-12-06 11:43:11 · 4232 阅读 · 0 评论 -
java公平锁,非公平锁,CAS,AQS的一些事情
PS:该文章是借鉴掘金的 石衫的架构笔记附上借鉴的所有链接:大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?【石杉的架构笔记】大白话聊聊Java并发面试问题之谈谈你对AQS的理解?【石杉的架构笔记】大白话聊聊Java并发面试问题之公平锁与非公平锁是啥?【石杉的架构笔记】谈到公平锁和非公平锁,首先要引入2个概念。一个是CAS,一个是AQS。CAS:全名叫做C...原创 2018-12-07 18:36:06 · 6606 阅读 · 0 评论 -
mybaits-config配置
针对无法进行读取mybaits-config的配置。spring boot中mybaits-config.xml的文件配置首先上mybaits-config.xml的文件内容<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DT...原创 2018-08-07 11:14:07 · 734 阅读 · 0 评论 -
spring boot热部署,修改java代码不重启
我用的idea插件,虽然每次用虚拟机重启快很多,但是每次看到有日志打印项目重启感觉还是不舒服。所以部署了不重启的方法 首先和其他的类似,idea中的配置 registry 勾选 compiler.automake.allow.when.app.running然后 compiler 中勾选 build project automatically引入对应的maven包<de...原创 2018-08-07 11:07:56 · 9279 阅读 · 12 评论 -
logback配置日志文件目录
配置log的时候遇到了很多问题。这里记录一下配置过程。方便以后再用。logback-dev.xml的配置文件<?xml version="1.0" encoding="UTF-8"?><configuration> <property name="LOG_DIR" value="/data/log/jcl/" />原创 2018-08-07 11:01:31 · 15374 阅读 · 0 评论 -
开发聊天通讯所遇到的问题
目前正在开发一个网页实时聊天,支持web和手机端即时通讯,支持web多页面的接收和发送,仅支持单对单的聊天模式。 开发过程中遇到了一些问题,记载下来以供以后参考: 1。在技术选型方面,目前实现聊天及时通讯的方式无非就是ajax,短轮询,长轮询,长链接。但是在网上找了许多的资料以后,发现最适合于开发的是icomet框架以及h5新支持的websocket。找了很久的icomet的d...原创 2018-03-06 14:05:34 · 412 阅读 · 0 评论