![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 71
bug解决只是一瞬间,但帅是一辈子
在职打工人
展开
-
springcloud整合分布式事务seata
若正常执行完毕且事务提交成功可以在日志中查看到,通常为实现类中,在特定方法上使用。原创 2023-05-04 18:06:05 · 197 阅读 · 0 评论 -
SpringBoot自动装配原理[源码]
SpringBoot自动装配原理,各注解、重点类详细说明原创 2022-10-09 17:31:46 · 444 阅读 · 0 评论 -
SpringCloud全家桶(从入门到精通)
文章目录微服务概述什么是微服务从技术角度理解微服务与微服务架构微服务优点与缺点微服务技术栈有哪些原始分布式架构使用的技术服务为什么选择SpringCloud作为微服务技术架构目前公司微服务技术架构SpringCloud 是什么?Spring Cloud与Spring Boot的区别Dubbo SpringCloud 的对比SpringBoot与SpringCloud本对应关系Spring Cloud的参考文档与官网SpringCloud添加组件的基本套路Eureka服务注册与发现Eureka介绍及原理理解介原创 2021-07-19 22:22:29 · 1697 阅读 · 0 评论 -
mybatisplus 复合主键(多主键) CRUD
mybatisplus 复合主键CRUD需求描述最近接到个挺有意思的需求,做用户观看学习视频时长的一个数据埋点储存用户观看视频时长、记录的接口的调用肯定会特别频繁,因为每间隔指定时间每个用户都会调用,如果在这个接口里直接操作数据库将会给我们的数据库带来一定的压力,在我的代码中是不允许的,而我是这样完成这个需求的:首先将用户观看视频的时长、记录存储到阿里云的日志库里,随后以定时器从阿里云的日志库中拉取用户观看视频的数据同步到我们的数据库中。而就是最后这一步,同步数据到数据库中,这里的数据量肯定是庞大原创 2021-06-23 13:49:55 · 43651 阅读 · 20 评论 -
SpringBoot项目拆分 (spring多项目包扫描、依赖注入、jar包引入、数据库操作、项目启动、接口访问)
SpringBoot项目拆分(按模块拆分)在了解SpringBoot项目拆分之前首先我们需要了解微服务架构什么是微服务?单个轻量级服务一般为一个单独微服务,微服务讲究的是 专注某个功能的实现,比如登录系统只专注于用户登录方面功能的实现,讲究的是职责单一,开箱即用,可以独立运行。微服务架构系统是一个分布式的系统,按照业务进行划分服务单元模块,解决单个系统的不足,满足越来越复杂的业务需求。马丁福勒(Martin Fowler):就目前而言,对于微服务业界并没有一个统一的、标准的定义。但通常而言,微服务原创 2021-06-19 16:43:17 · 3529 阅读 · 1 评论 -
Java集合[面试]
Java集合详解一、数组和集合的比较数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型。数组和集合存放的对象皆为对象的引用地址。数组容易固定无法动态改变,集合类容量动态改变。数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式集合以原创 2021-06-18 17:52:57 · 133 阅读 · 0 评论 -
SpringBoot整合Swagger2 [超详细]
首选引入pom依赖 <!-- swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </d原创 2021-06-08 11:28:54 · 151 阅读 · 0 评论 -
基础算法——桶排序
最快最简单的排序——桶排序在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试 的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍 一下排序算法我们这里只需借助一个一维数组就可以解决这个问题。请确定你真的仔细想过再往下 看哦。 首先我们需要申请一个大小为 11 的数组 int a[11]。OK,现在你已经有了 11 个变量,编 号从 a[0]~a[10]。刚开始的时候,原创 2020-12-11 18:29:46 · 168 阅读 · 0 评论 -
MyBatis-Plus 代码生成器(生成至指定目录下)
先看效果图生成前项目目录生成后项目目录需要引入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency>原创 2021-05-21 16:49:20 · 4161 阅读 · 3 评论 -
HTML转PDF(Java itext)
Java HTML转PDF —> itext首先需要引入jar包 <dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>3.0.3</version> </dependency>packag原创 2021-05-18 15:06:20 · 1232 阅读 · 2 评论 -
线程池的7种创建方式,使用与差异
什么是线程池?线程池(ThreadPool)是一种基于池化思想管理和使用线程的机制。它是将多个线程预先存储在一个“池子”内,当有任务出现时可以避免重新创建和销毁线程所带来性能开销,只需要从“池子”内取出相应的线程执行对应的任务即可。池化思想在计算机的应用也比较广泛,比如以下这些:内存池(Memory Pooling):预先申请内存,提升申请内存速度,减少内存碎片。连接池(Connection Pooling):预先申请数据库连接,提升申请连接的速度,降低系统的开销。实例池(Object Pool原创 2021-05-04 10:37:35 · 558 阅读 · 1 评论 -
BigDecimal加减乘除
BigDecimal加减乘除运算1、加法 add()函数// 加法BigDecimal result1 = num1.add(num2);BigDecimal result12 = num12.add(num22);2、减法subtract()函数// 减法BigDecimal result2 = num1.subtract(num2);BigDecimal result22 = num12.subtract(num22);3、乘法multiply()函数// 乘法BigDecim原创 2021-04-24 17:50:39 · 468 阅读 · 0 评论 -
Java生成HTML文件、HTML转doc文件、
话不多说直接上代码package com.youxue.portal;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import java.io.*;import java.util.*;原创 2021-04-10 11:08:19 · 632 阅读 · 0 评论 -
ThreadPoolExecutor 用法详解(附demo)
ThreadPoolExecutor的使用ThreadPoolExecutor提供了四个构造方法:以最后一个构造方法(参数最多的那个),对其参数进行解释: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,原创 2020-11-27 18:06:21 · 1104 阅读 · 0 评论 -
ThreadPoolExecutor 详细解析
Java源码里面都有大量的注释,认真读懂这些注释,就可以把握其七分工作机制了。关于ThreadPoolExecutor的解析,我们就从其类注释开始。现将注释大致翻译如下:ExecutorService(ThreadPoolExecutor的顶层接口)使用线程池中的线程执行每个提交的任务,通常我们使用Executors的工厂方法来创建ExecutorService。线程池解决了两个不同的问题:提升性能:它们通常在执行大量异步任务时,由于减少了每个任务的调用开销,并且它们提供了一种限制和管理资源(包原创 2020-11-27 17:54:01 · 292 阅读 · 0 评论 -
MQ实战,p2p与发布订阅详解【详细代码】
消息队列中点对点与发布订阅区别背景知识JMS一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914)。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1.Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。点对点与发布订阅最初是由JMS定义的。这两种模式主要区别或解决的问题就是发原创 2020-11-13 17:22:41 · 700 阅读 · 1 评论 -
ActiveMQ与JMS,差异、优缺点详解
ActiveMQ这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS、ActiveMQ的初步入门及API详细使用、两种经典的消息模式(PTP and Pub/Sub)、与Spring整合、ActiveMQ集群、监控与配置优化等。话不多说,我们来一起瞧一瞧!JMS首先来说较早以前,也就是没有JMS的那个时候,很多应用系统存在一些缺陷:1.通信的同步性client端发起调用后,必须等待server处理完成并返回结果后才能继续执行2.client 和 server 的生命周原创 2020-11-13 17:12:00 · 698 阅读 · 0 评论 -
MQ消息中间件相关知识
一、MQ消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。2、消息中间件的组成2.1 Broker消息服务器,作为server提供消息核心服务2.2 Producer消息生产者,业务的发起方,负责生产消息传输给broker,2.3 Con原创 2020-11-13 16:42:13 · 379 阅读 · 0 评论