
J2EE
文章平均质量分 90
阿★永
这个作者很懒,什么都没留下…
展开
-
在Spring事务提交后做点事儿
最近团队整理出的一份《Rabbit MQ消息定义规范》后,有同学提出了这样的一个场景, 在事务还没有执行完消息就已经发出去了, 导致后续的一些数据或逻辑上的问题产生, 那么既然出现了问题, 我们就需要解决这个问题, 正好这段时间在看Spring事务相关的知识, 所以本文就是带着这样的问题, 给出一些解决此问题的方案, 供大家参考.本文整理了三种解决方案, 但是在给出解决方案之前, 我们需要了解一下这三种方案的技术核心点是什么, 因为这是重点中的重点, 因为三种方案背后的本质逻辑都来源于此.原理核心:转载 2022-07-13 11:13:12 · 2644 阅读 · 0 评论 -
分布式事务,这一篇就够了
[作者简介] 李文华,小米信息技术部海外商城组随着互联网技术的不断发展,系统越来越复杂,几乎所有 IT 公司的系统都已经完成从单体架构到分布式架构的转变,分布式系统几乎无处不在。谈到分布式系统,特别是微服务架构,我们不得不谈分布式事务。今天就跟大家一起聊聊分布式事务以及常用解决方案。基础理论在讲解具体方案之前,我们有必要了解一些分布式事务所涉及到的基础理论知识。事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一转载 2021-03-25 16:31:02 · 433 阅读 · 0 评论 -
秒懂23种设计模式
01 工厂方法追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。02 建造者模式MM 最爱听的就是「我爱你」这句话了,见到不同地方的 MM,要能够用她们的方原创 2021-03-18 09:42:41 · 277 阅读 · 0 评论 -
Java类加载器 — classloader 的原理及应用
什么是classloaderclassloader顾名思义,即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。了解java的类加载机制,可以快速解决运行时的各种加载问题并快速定位其背后的本质原因,也是解决疑难杂症的利器。因此学好类加载原理也至关重要。▐ classloader的加载过程类从被加载到虚拟机内存到被卸载,整个完整的生命周期包括:类加载、验证、准备、解析、初始化、使用和转载 2021-02-19 17:51:54 · 1070 阅读 · 1 评论 -
为什么建议使用你 LocalDateTime ,而不是 Date?
为什么需要LocalDate、LocalTime、LocalDateTimeCome On 一起使用java8全新的日期和时间API小结“在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗通过阅读本篇文章你将了解到:为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改为什么需要Loca.转载 2020-11-20 16:58:21 · 173 阅读 · 0 评论 -
Spring Boot实战之以 War 包的形式部署
1. 前言Spring Boot 提供了内置的 tomcat、undertow、jetty 三种 Servlet Web 容器。让我们开箱即用,可以迅速以 JAR 启动一个 Web 应用。但是在某些场景中我们可能还需要将我们的 Spring Boot 容器以 War 的形式进行传统的部署。这时我们就需要通过借助于 SpringBootServletInitializer 来实现。2. Spri...转载 2019-11-05 00:13:42 · 636 阅读 · 0 评论 -
学习Spring Security和Apache Shiro你需要具备这些条件
前言web应用达到生产需要就必须有安全控制。java web领域经常提及的两大开源框架主要有两种选择 Spring Security和Apache Shiro 。所以学习这两种框架也是java开发者提高水平的必经之路。从今天开始连续一段时间内,研究一下Spring Security。如果想学习的同学可以关注一下公众号:Felordcn 或者通过https://felord.cn来及时获取相关的干...转载 2019-11-03 13:20:17 · 273 阅读 · 0 评论 -
基于Nacos和Sentinel实现灰度路由和流量防护一体化
基于 Nacos 和 Sentinel ,实现灰度路由和流量防护一体化的解决方案,发布在最新的 Nepxion Discovery 5.4.0 版本,具体参考:源码主页,请访问 :源码主页指南主页,请访问 :指南主页文档主页,请访问 :文档主页Nepxion Discovery 框架在实现灰度发布和路由功能前提下,结合 Nacos 和 Sentinel ,对流量再实施一层防护措施,更能达到...转载 2019-10-31 21:18:58 · 796 阅读 · 0 评论 -
Java 泛型中的通配符 T,E,K,V,?
Java 泛型通配符前言泛型带来的好处泛型中通配符常用的 T,E,K,V,?? **无界通配符**上界通配符 < ? extends E>下界通配符 < ? super E>?和 T 的区别区别1:通过 T 来 确保 泛型参数的一致性区别2:类型参数可以多重限定而通配符不行区别3:通配符可以使用超类限定而类型参数不行`Class`和 `Class<?>`区别前...转载 2019-09-15 13:21:16 · 276 阅读 · 0 评论 -
Arthas教程
文章目录Arthas 介绍什么是Arthas,它能为我们做什么Arthas相关地址基础教程启动arthas-boot常用命令DashboardThreadScJadWatchExit/Shutdown进阶教程常用命令查看JVM信息syspropsysenvjvm查看已加载的类scsm使用技巧自动补全readline的快捷键支持历史命令的补全pipelineOgnl调用static函数获取静态类的静...原创 2019-06-29 18:07:07 · 6516 阅读 · 0 评论 -
Java文档注释用法+JavaDoc的使用详解
Java文档注释+JavaDoc的使用详解简介文档注释负责描述类、接口、方法、构造器、成员属性。可以被JDK提供的工具 javadoc 所解析,自动生成一套以网页文件形式体现该程序说明文档的注释。注意:文档注释必须写在类、接口、方法、构造器、成员字段前面,写在其他位置无效。JavaDoc 官方说明How to Write Doc Comments for the Javadoc Tool...原创 2019-05-06 23:30:07 · 50115 阅读 · 5 评论 -
详细解读阿里开源的分布式事务解决方案-FESCAR
详细解读阿里开源的分布式事务解决方案-FESCAR导读FESCAR on GitHub设计初衷既有的解决方案为什么不满足业务无侵入的方案侵入业务的方案理想的方案应该是什么样子如何定义一个分布式事务与 XA 的差别在什么地方架构层次两阶段提交分支事务如何提交和回滚Phase1Phase2事务传播机制隔离性分支的基本行为模式AT 模式分支的行为模式MT 模式分支的行为模式混合模式应用场景的远景微服务框...转载 2019-03-16 12:09:37 · 272 阅读 · 0 评论 -
图片转换PDF文件
今天接到客户的需求,需要将一批TIF图片转换成PDF文件上传到海关和检验检疫局。废话不多说,直接上代码import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Image;import com.lowagie.text.Utilities;impo原创 2016-09-18 11:06:32 · 885 阅读 · 0 评论 -
从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)
摘要:MVC模式早在上个世纪70年代就诞生了,直到今天它依然存在,可见生命力相当之强。MVC模式最早用于Smalltalk语言中,最后在其它许多开发语言中都得到了很好的应用,例如,Java中的Struts、Spring MVC等框架。1. 理解MVCMVC是一种经典的设计模式,全名为Model-View-Controller,即模型-视图-控制器。其中,模型是用于封装数据的载体,例如,在Jav转载 2016-11-22 13:09:12 · 891 阅读 · 0 评论 -
HTTP 请求
Maven配置: org.apache.httpcomponents httpclient 4.3 HttpUtils:package com.lerry.http;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;impor原创 2016-12-20 15:40:03 · 367 阅读 · 0 评论 -
Java 异常处理的误区和经验总结
在写代码的过程中,我们往往会忽略一些异常处理的基础知识。本文旨在介绍 Java 异常的常见误区和一些细节处理,包括异常的选择、错误代码的利用、处理多层次的异常、以及如何添加有效信息到异常等。转载 2017-04-06 17:17:23 · 328 阅读 · 0 评论 -
40个Java多线程问题总结
前言个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些转载 2017-09-17 15:18:09 · 270 阅读 · 0 评论 -
Spring boot 使用Druid数据源
Druid 为监控而生的数据库连接池由于工作需要,最近一个项目是Spring Boot架构的需要使用Druid作为数据源,所以整理了这样一篇文章废话不多说,现在开始表演。Druid Spring Boot Starter 用于在Spring Boot项目中轻松集成Druid数据库连接池和监控。 如何使用在 Spring Boot 项目中加入druid-spring-boot-starter依赖ma转载 2018-01-19 15:09:57 · 1851 阅读 · 0 评论 -
Java8影响并行流性能的主要因素
影响并行流性能的主要因素有5 个,依次分析如下。 数据大小输入数据的大小会影响并行化处理对性能的提升。将问题分解之后并行化处理,再将结果合并会带来额外的开销。因此只有数据足够大、每个数据处理管道花费的时间足够多时,并行化处理才有意义。 源数据结构每个管道的操作都基于一些初始数据源,通常是集合。将不同的数据源分割相对容易,这里的开销影响了在管道中并行处理数据时到底能带来多少性能上的提升。 装箱处理基...原创 2018-07-01 16:08:14 · 1196 阅读 · 0 评论 -
通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
现在在做的项目用到了SpringMVC框架,需要从前端angular接收请求的JSON数据,为了测试方便,所以直接先用AJAX进行测试,不过刚开始用平时用的ajax方法,提交请求会出现415或者400错误,经过研究,终于可以了,现在做个总结。js代码:function postSimpleData() { $.ajax({ type: "POST"...原创 2016-11-17 14:24:28 · 37441 阅读 · 1 评论 -
服务发现之Consul介绍、部署和使用
为什么使用服务发现微服务的框架体系中,服务发现是不得不提的一个模块。我相信了解或者熟悉微服务的应该都知道它的重要性。这里简单的介绍一下。我们看下面的一幅图片:图中,客户端的一个接口,需要调用服务A-N。客户端必须要知道所有服务的网络位置的,以往的做法是配置是配置文件中,或者有些配置在数据库中。这里就带出几个问题:需要配置N个服务的网络位置,加大配置的复杂性服务的网络位置变化,都需要改变...原创 2018-12-29 16:09:50 · 2174 阅读 · 4 评论 -
后端架构师技术图谱
《后端架构师技术图谱》数据结构队列集合链表、数组字典、关联数组栈树二叉树完全二叉树平衡二叉树二叉查找树(BST)红黑树B,B+,B*树LSM 树BitSet常用算法排序、查找算法选择排序冒泡排序插入排序快速排序归并排序希尔排序堆排序计数排序桶排序基数排序二分查找Java 中的排序工具布隆过滤器字符串比较K...原创 2019-01-06 23:11:49 · 792 阅读 · 0 评论 -
Excel文件office2003 and office2007 操作
这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx。poi-3.7-20101029.jar,下载地址:http://download.youkuaiyun.com/detail/evangel_z/4107089 geronimo-stax-api_1.0_spec-1.0.jar,下载地址:h原创 2016-09-12 13:47:25 · 376 阅读 · 0 评论