自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_42945742的博客

Navicat Premium 12远程连接oracle数据库

  • 博客(68)
  • 收藏
  • 关注

原创 基于redisson实现延迟队列功能实战

背景:最近有个需求是跟第三方对接事故报案,事故报案单状态是由kafka来实现发布订阅的。具体是这样的,事故报案双方都可以发起,如果是第三方发起的事故报案,我们接到kafka推送的状态后,需要创建一张事故报案单,如果是我们发起的事故报案,第三方也需要创建一张事故报案单。因为我们创建事故报案单后,还有后续流程要走,导致当消费该报案单第一个状态的时候,事故报案单还没有创建完成,其结果就是该消息没有被成功消费,导致事故报案单缺少了第一个状态节点。因为状态消息实时性要求不高,所以我们决定用延时队列来解决这个问题。同

2020-12-24 11:26:13 2129 4

转载 BFF困境与思考

目录标题 BFF困境与思考一、BFF在整体微服务架构中的位置二、BFF是什么1.前端与BFF服务由同一个团队负责2.BFF层应该足够薄3.BFF有明确的服务终端 三、BFF服务如何划分1. 按产品拆分2. 按模块拆分3. 按终端划分 四、BFF困...

2020-11-07 09:58:25 2211 2

转载 微服务架构中的BFF到底是啥?

一、从一个MyShop开始说起 为了讲清BFF是个啥,这里引用我在波波老师的课程《Spring Boot与K8s云原生应用开发》中学到的一个案例,来跟大家分享一下,并尽力说清楚BFF是啥,又是如何演化出来的。 假设我们在一个开发团队中,开发了一个叫做MyShop的电商项目,它采用的是微服务的架构风格。它经历过几次架构调整,我们就跟着它的调整来看看BFF是怎么演化出来的。 假设v1版本在七八年之前,MyShop已经采用了服务化的架构,它的客户端也主要还是以传...

2020-11-07 09:43:05 11233

原创 PageHelper分页注意事项之源码分析

在这之前一直在使用PageHelper进行分页,使用时只记住了PageHelper分页注意事项,具体是为什么也没有深入分析。今天正好处理了一个评价列表分页失败的问题,借着这个机会,把分页查询的源码简单扒了扒。导致分页失败的代码如下:具体为什么会失败,我们来看源码:在执行sql查询时,PageInterceptor类中有个intercept方法,会根据查询数据的总条数来判断是否会继续分页查询 afterCount方法会将查询结果(数据总条数)存储在 Page对象中。这个Page对象又是从哪里来

2020-11-06 20:50:21 206

原创 Java基础知识2——常见集合

1)说说常见的集合有哪些吧?答:Map 接口和 Collection 接口是所有集合框架的父接口:Collection 接口的子接口包括:Set 接口和 List 接口;Map 接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap 以及 Properties 等;Set 接口的实现类主要有:HashSet、TreeSet、LinkedHashSet 等;List 接口的实现类主要有:ArrayList、LinkedList、Stack

2020-11-05 15:46:39 120

原创 Java 基础知识1——基础

(一) Java 基础知识点1)面向对象的特性有哪些?答:封装、继承和多态。2)Java 中覆盖和重载是什么意思?答:覆盖(Override)是指子类对父类方法的一种重写,只能比父类抛出更少的异常,访问权限不能比父类的小。被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个方法;重载(Overload)表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。面试官: 那么构成重载的条件有哪些?答:参数类型不同、参数个数不同、参数顺序不同。面试官: 函

2020-11-05 15:44:25 107

转载 MySQL连接数过多导致服务无法正常运行

【Mysql并发和连接数】mysql并发数:netstat -ant |find /i "ESTABLISHED" |find /i ":3306 " /c mysql连接数:select count(*) from information_schema.processlist;      &nb...

2020-08-21 16:55:14 1793

原创 spring异步任务@Async 结合线程池使用的源码理解

最近在做重构,业务实现需要用到异步操作。随即在网上看了些关于spring异步操作的文章,最后决定用异步注解@Async结合线程池的方式来实现。关于异步注解的使用以及注意事项在此不再详述,具体可参考:1. spring @Async异步方法使用及原理说明2. Spring异步任务@Async注解源码解析我们重点关注 AsyncExecutionInterceptor 类下的 invoke方法...

2020-03-27 17:16:16 511

转载 DDD—领域驱动设计

DDD(领域驱动设计) 转载 ...

2020-03-11 10:27:32 217

转载 Java中Volatile关键字详解

阅读目录一、基本概念二、Volatile原理 一、基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。  可见性,是指线程之间的可见性...

2019-12-19 11:35:28 111

转载 java CAS算法实现乐观锁 (Compare and Swap)

在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。  CAS:    CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失...

2019-12-17 14:27:34 169

转载 java多线程总结:原理结合源码详细讲解

执行策略:线程执行的方式串行执行比如:医院给病人看病的时候,可以让所有的病人都拍成一个队形,让一个医生统一的看病。医生:线程。病人看病:任务这种一个医生给一群站好队形的病人看病--映射到java就相当于:单线程串行执行任务映射到我们java中的话就相当于线程执行任务。串行执行的缺点很明显。例如:...

2019-12-17 12:25:18 226 2

转载 navicat12连接SQL Server时出错:未发现数据源名称并且未指定默认驱动程序

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...

2019-10-10 13:58:08 918

原创 由TODO引申出Java中的特殊注释//fixme,hack,bug

在阅读源码和开发过程中,都遇见过别人写的TODO注释。按照字面理解就是将要做什么,一直理解就是解释该注释下面的代码干了什么。后来不经意间看到了别人写的文章,原来不止是这么简单。下面就把我整理的一部分注释跟大家分享一下。TODO:该注释下方的代码将要实现的功能FIXME:该注释下方的代码可能不满足后来的需求,需要进行修改HACK:该注释下方的代码需要根据自己的需求去调整程序代码BUG:该注释...

2019-09-06 14:15:28 904

转载 SpringBoot源码分析之SpringBoot的启动过程

<header class="post-header"> <h1 class="post-title" itemprop="name headline"> SpringBoot源码分析之SpringBoot的启动过程 ...

2019-08-29 14:16:47 123

转载 Spring Cloud Eureka服务治理

Spring Cloud Eureka是Spring Cloud Netflix 微服务套件中的一部分,它基于Netfl...

2019-08-27 10:14:57 335

转载 动态规划DP问题分类和经典题型

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...

2019-08-23 14:48:52 412

原创 Map(TreeMap,HashMap)的toString方法与List的toString方法对比

需要注意一点的是,无论是HashMap,还是TreeMap,都继承了AbstractMap,它们的toString方法也继承自AbstractMap。AbstractMap的toString方法重写了Object中toString的方法。源码如下: public String toString() { Iterator<Entry<K,V>> i = e...

2019-08-15 14:22:33 986

原创 HttpMessageNotWritableException: No converter found for return value of type:。。。

解决方法:给返回前端的视图层对象的private属性,添加set/get方法

2019-06-18 19:03:42 496

原创 linux日志查询

查看所有日志:find 2019-02-20-*.log -type f |xargs grep “”如果日志非常的多,在短短的一个小时的时间中就有上千条或者上万条数据,仅仅根据条件筛选的话非常麻烦,即使筛选出来也会有很多条数据。如果我们知道该条调用发生的时间,就可以根据日志最前面打印的时间判断出哪些记录符合查询条件。所以,我们可以根据日志的日期作为搜索条件,并且配合grep使用,如下所示:...

2019-06-13 13:10:26 163

转载 idea修改git的账号跟密码错误并且提示 Authentication failed for 'https://gitee.com/xxx

文章转载自:https://blog.csdn.net/weixin_38289196/article/details/80920109  在第一次输入git的账号跟密码以后,idea并不会在自动跳出账号密码框要你重新输入,而是一直提示你Clone ...

2019-06-11 09:23:36 6804 1

转载 一致性 Hash 算法的实际应用

文章转自:https://www.cnblogs.com/crossoverJie/p/10454349.html 一致性 Hash 算法的实际应用 前言记得一年前分享过一篇《一致性 Hash 算法分析》,当时只是分析了这个算法的实现原理、解决了什么问题等。但没有实际实现一个这样的算法,毕竟要加深印象还得自己撸一遍,于是本次就当前的一个路由需求来着手...

2019-06-10 18:46:32 165

转载 JVM基础知识与调优

目录转载: JVM调优总结(一)-- 一些概念转载: JVM调优总结(二)-- 一些概念转载: JVM调优总结(三)-- 基本垃圾回收算法转载: JVM调优总结(四)-- 垃圾回收面临的问题转载: JVM调优总结(五)-- 分代垃圾回收详述1转载: JVM调优总结(六)-- 分代垃圾回收详述2转载: JVM调优总结(七)-- 典型配置举例1转载: JVM调优总结(八)-- 典型配置...

2019-05-30 12:49:13 251

原创 mysql删除重复的数据,只保留一条

DELETE FROM userWHERE u_id IN( select u_id from (SELECT u_id FROM userWHERE id IN ( SELECT id FROM user GROUP BY id HAVING count( id ) > 1 ) AND u_id not IN ( SELECT min( u_id ) FROM ...

2019-05-29 18:13:01 231

原创 mysql数据库中字符串格式的13位时间戳转换为日期格式

FROM_UNIXTIME(CONVERT(ssco.push_time/1000 , signed),"%Y-%m-%d %H:%i:%s") as pushTime

2019-05-21 20:50:32 7650

原创 java自定义对象实现排序

对象排序有两种方法,自定义排序和实现Java中的比较器接口排序。对自定义对象排序,我们可以根据自定义对象的数据结构,自定义排序规则来实现。也可以用Java中的两个常用的接口Comparable和Comparator,实现将自定义对象排序。本片文章就如何用java中的两个接口Comparable和Comparator实现自定义对象排序进行讲解。1. 实现Comparable接口Compara...

2019-04-15 16:31:20 2215

原创 ISO8601时间格式转换为Date

String isoDate = "2018-05-14T03:51:50.153Z" -- ISO8601时间格式 DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime(); DateTime dateTime = dateTimeFormatter.parseDateTime(isoDate); ...

2019-03-08 16:21:32 6178

原创 springboot整合poi基于excel模板下载的功能实现

现在网上有很多基于poi的excel导入导出功能实现的代码,大家都写的很好,但好像关于静态资源excel模板导出的却很少。我整理了一下项目中遇到的excel导出的功能代码,展示如下,希望有所帮助,如有不正确的地方,多多讨论。public DTO download(HttpServletRequest request, HttpServletResponse response) { log...

2019-03-08 15:24:00 1720 2

原创 mybatis根据条件批量update操作

这里 update table set column = property 是根据条件将对应的数值更新掉:代码如下:

2019-03-07 21:34:04 4298

转载 Spring常用注解说明

1.概述Spring Boot简化了Spring应用的开发,不需要繁琐的XML配置就能开发。 那Spring Boot是怎么实现自动配置的呢? 这就要用到Spring Boot中提供的许多注解:Spring提供XML配置、注解配置或Java配置来实现Bean的创建和注入Spring IoC(ApplicationContext)容器负责进行扫描Bean,进行Bean的初始化、配置和依赖...

2019-03-01 00:13:04 339

原创 list集合判空,是用isEmpty 还是 null?

要说明这个问题,我们先来看一段简单的测试代码:(1)从上面的代码可以看出,null 值是来判断该list对象(list1,list2)有没有分配内存空间,没有则为null。而 isEmpty()又表示什么呢?(2)我们通过查看ArrayList的源码可以看出,isEmpty()其实就是判断list的元素个数是否为0if( list.isEmpty()) 等价于if( list.si...

2019-02-28 22:41:42 3713

转载 Shiro自定义密码比较器

前文中已经实现了基本的权限控制,使用的是shiro默认提供的密码比较器,但是在有些情况下,可能需要一些自定义。比如说,想使用自己的加密方式,再者使用ladp进行用户认证等等。一、查看源码查看HashedCredentialsMatcher的继承结构可以看出,他是继承自SimpleCredentialsM...

2019-02-27 22:35:23 406

原创 一种随机生成加密盐值的方法

密码加密的时候,可以选择性的添加随机值与密码明文拼接,然后md5加密,获得加密后的密码。下面是一种获得随机值的方法:public static String getRandomSalt() {String model = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”;StringBuffer salt = new StringB...

2019-02-27 15:54:09 9090

转载 SpringBoot+Shiro实现登陆拦截功能

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上一章讲到使用自定义的方式来实现用户登录的功能,这章采用shiro来实现用户登陆拦截的功能。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先介绍下Shiro:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证...

2019-02-27 10:37:22 1093

原创 mybatis多对多查询出现的java.lang.UnsupportedOperationException异常解决方案

在用mybatis多对多查询时报了一个错误,java.lang.UnsupportedOperationException;后来仔细看了一下日志,提示“处理结果集错误”。sql文件如下: &lt;resultMap id="dtoList" type="ResourceDTO" autoMapping="true"&gt; &lt;id column="id1" property=...

2019-02-22 15:15:07 1404

原创 Java中的PO、VO、TO、BO、DAO、POJO

VO:值对象、视图对象PO:持久对象QO:查询对象DAO:数据访问对象DTO:数据传输对象PO:全称是persistant object 持久对象,最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。BO:全称是business object:业务对象主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。...

2019-02-21 23:20:07 280

原创 mybatis 设置jdbcType与JavaType和JdbcType对应表

使用mybatis对mysql数据库进行增删改查时,如果传递的参数存在空值,那么会报空值异常: select * from user where 1= 1 and &lt;if test="params.userCode!= null and params.userCode.trim()!='' "&gt; and userCode= #{params.userCode}...

2019-02-21 23:13:42 1648

原创 Exception 与 RuntimeException及其子类使用上的区别

相信各位读者对Exception 和 RuntimeException已经有了基本的了解,即便没有特别熟悉,对于它们之间的区别,网上随便一搜就能够找到。这篇文章主要的目的是讲RuntimeException异常的使用,如果能够理解RuntimeException,那么两者的区别也就清晰了。简单来说就是一句话,对于出现RuntimeException异常及其子类异常的地方,最好也要使用异常处理机制...

2019-02-21 11:39:14 4782

原创 BigDecimal与double使用注意

记住一句话就行了:对精度没有绝对要求时,用double即可。BigDecimal在计算时效率比double低非常多BigDecimal转double:BigDecimal bigDecimal = new BigDecimal(3.12234534645767)double v = bigDecimal.doubleValue();...

2019-02-20 20:29:05 828 2

原创 springboot整合mybatis打印sql语句

在springboot的配置文件application.properties中添加一行代码即可:#打印sql到控制台logging.level.com.tst.mapper=debug

2019-02-19 16:37:46 887

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除