
Java
文章平均质量分 85
BAStriver
无限自由中偏爱的一种约束,就是梦想。
展开
-
关于金融开发领域的一些专业知识总结
无论是证券交易还是银行交易,都有异同之处,以下对这几年工作经历了解到的金融知识进行总结。原创 2025-03-20 21:58:35 · 1114 阅读 · 0 评论 -
关于值传递和引用传递的问题记录
对于Java中的List类型的对象,按我以前理解是引用传递,但有一点要注意,就是在调用方法里面如果直接将一个新的List对象赋值于该方法参数,会导致变成,因为这个操作直接修改了方法参数的引用地址,无论怎么修改都无法影响到调用方法的对象。原创 2023-11-12 21:07:24 · 669 阅读 · 0 评论 -
关于Mysql相关原理的理解
关于Mysql的索引、事务、锁机制和MVCC的理解和总结。原创 2023-04-27 23:15:03 · 316 阅读 · 1 评论 -
关于Java内存模型的理解
由于不同CPU架构的缓存体系、缓存一致性协议、重排序策略不一样,提供的内存屏障指令也有差异,所以为了简化Java开发工作,Java封装了一套规范,也就是Java内存模型。Java内存模型希望屏蔽各种硬件和操作系统的访问差异,保证了Java程序在各种平台下对内存的访问都能得到一致效果,目的是解决多线程存在的原子性、可见性和有序性问题。原创 2023-04-26 00:07:50 · 726 阅读 · 0 评论 -
关于Java注解的一些理解 小结
注解是代码的特殊标记,可以在编译、类加载、运行时被读取,对应了RetentionPolicy的三种级别。SOURCE和CLASS级别需要继承AbstractProcessor,实现process方法处理自定义注解的逻辑,而RUNTIME是我们日常开发用的最多的,配合反射机制可以在很多场景优化代码。原创 2023-04-22 23:41:43 · 599 阅读 · 0 评论 -
关于数据库分表的一些思考
MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行。那么,这个数值多少才合适呢?这个数值和实际记录的条数无关,而与 MySQL 的配置以及机器的硬件有关。因为,MySQL 为了提高性能,会将表的索引装载到内存中,在InnoDB buffer size 足够的情况下,其能完成全加载进内存,查询不会有问题。但是,当单表数据库到达某个量级的上限时,导致内存无法存储其索引,使得之后的 SQL 查询会产生磁盘 IO,从而导致性能下降。原创 2023-03-31 20:02:09 · 433 阅读 · 0 评论 -
关于类加载机制和双亲委派机制的一些思考 小结
WebAppClassLoader 加载类的时候,故意打破了JVM 双亲委派机制,绕开了 AppClassLoader,直接先使用 ExtClassLoader 来加载类。既保证了基础类不会被同时加载,也保证了在同一个 Tomcat 下不同 web 之间的 class 是相互隔离的。原创 2023-03-28 15:45:24 · 413 阅读 · 0 评论 -
关于Map类的使用小结
HashMap是基于哈希算法来确定元素的槽,当我们向集合中存入数据时,它会计算传入的Key的哈希值,并利用哈希值取余来确定槽的位置。ConcurrentHashMap和HashMap一样,使用了红黑树,而在ConcurrentHashMap中则是取消了Segment分段锁的数据结构,取而代之的是Node数组+链表+红黑树的结构,使用的 “读写锁”采用了CAS和Synchronized来保证线程的安全。原创 2023-03-26 23:02:03 · 523 阅读 · 0 评论 -
关于泛型的一些思考 小结
泛型的本质是为了参数化类型,在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。原创 2023-03-26 17:21:35 · 359 阅读 · 0 评论 -
关于@ConfigurationProperties的使用
对@ConfigurationProperties使用过程中遇到的问题做一下总结原创 2022-08-02 21:50:16 · 559 阅读 · 0 评论 -
Springboot集成Validator
通常来说一个api开放的参数都需要做验证,在开发期间也遇到一些问题,所以以下作出一些总结分享。原创 2021-10-21 22:44:37 · 328 阅读 · 0 评论 -
Java计算日期时间差的工具类总结
最近需要通过Java计算两个日期相差的天数,查了一些资料总结了以下的几个方法。从下面的测试结果来看,我比较倾向用Period。原创 2021-10-24 22:40:56 · 2107 阅读 · 0 评论 -
关于Springboot的EventListener和Jasypt使用 小结
1. EventListener1.1 使用场景EventListener是一种事件驱动编程,这是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式;为的就是业务系统逻辑的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已,用过Kafka的同学应该很容易理解这个。1.2 配置1) 新建UserInfoEvent。public class UserInfoEvent ext...原创 2021-08-18 22:28:19 · 234 阅读 · 0 评论 -
关于Springboot-jpa多数据源的使用小结
关于Springboot配置多数据源分享和总结。原创 2021-07-15 22:26:38 · 532 阅读 · 0 评论 -
关于批处理框架Springbatch的使用 小结
Spring Batch 作为 Spring 的子项目,是一款基于 Spring 的企业批处理框架。Spring Batch 不仅提供了统一的读写接口、丰富的任务处理方式、灵活的事务管理及并发处理,同时还支持日志、监控、任务重启与跳过等特性,大大简化了批处理应用开发,将开发人员从复杂的任务配置管理过程中解放出来,使他们可以更多地去关注核心的业务处理过程。原创 2021-07-08 20:44:14 · 398 阅读 · 0 评论 -
Springcloud Alibaba Seata处理分布式事务的使用 小结
目录1.Seata概述1.1 Seata简介1.2 Seata安装配置2.订单/库存/账户业务案例2.1数据库准备2.2 微服务准备2.2.1订单模块seata-order-service20012.2.2库存模块seata-storage-service20022.2.3 账户模块seata-account-service20032.3案例测试1.Seata概述众所周知,一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就...原创 2021-02-16 12:25:44 · 324 阅读 · 0 评论 -
关于Springcloud Alibaba Sentinel熔断与限流的使用 小结
1.Sentinel概述1.1 Sentinel简介As microservices become popular, the stability of service calls is becoming increasingly important.Sentineltakes "flow" as the breakthrough point, and works on multiple fields including flow control, circuit break...原创 2021-02-11 16:37:06 · 459 阅读 · 4 评论 -
关于Springcloud Alibaba Nacos服务注册和配置中心的使用 小结
1.SpringCloud Alibaba概述Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,只需要添加一些注解和少量配置就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。上面的官网链接首页大概讲述了Spring...原创 2021-02-09 16:11:42 · 751 阅读 · 0 评论 -
关于Springcloud Sleuth分布式请求链路跟踪的使用 小结
1.Sleuth概述Sleuth configures everything you need to get started. This includes where trace data (spans) are reported to, how many traces to keep (sampling), if remote fields (baggage) are sent, and which libraries are traced.微服务框架中,一个由客户端发起的...原创 2021-02-06 13:25:45 · 292 阅读 · 1 评论 -
关于Springcloud Stream消息驱动的使用 小结
目录1.Stream消息驱动概述1.1 简介1.2 设计思想2.Stream案例2.1消息驱动之生产者2.2消息驱动之消费者3.分组消费与持久化3.1重复消费问题3.2 消息持久化问题1.Stream消息驱动概述1.1 简介Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with ...原创 2021-02-05 00:48:56 · 377 阅读 · 0 评论 -
关于Springcloud Bus的使用 小结
目录1.Springcloud Bus概述2. RabbitMQ配置3.Springcloud Bus动态刷新3.1全局广播3.1.1 设计思想3.1.2 配置消息总线3.1.3 配置更新测试。3.2定点通知1.Springcloud Bus概述Spring Cloud Bus links the nodes of a distributed system with a lightweight message broker. This brok...原创 2021-02-04 00:30:50 · 494 阅读 · 0 评论 -
关于通过Asvc生成测试数据(Avro/Parquet)的工具类 小结
目录1. Avsc和Avro的关系2. Avsc生成Java类3. 根据Java类生成Avro格式的测试数据3.1 Avsc的schema types3.2 Complex type的使用3.3 生成测试数据1. Avsc和Avro的关系AVSCfile is anApache AvroSchema. Avro is a remote procedure call and data serialization framework developed within...原创 2021-02-03 16:40:29 · 1585 阅读 · 0 评论 -
关于Springcloud Config的使用 小结
1.Config概述1.1 简介Spring Cloud Config,众所周知,分布式微服务的配置会随着项目的庞大变得越来越多,于是便有了Springcloud config。分为服务端和客户端,服务端也称分布式配置中心,是个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息、加密/解密信息等访问。客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置,并在启动时从配置中心获取和加载配置信息服务器,默认用的是Git来存储配置信息,有助于对环境进行版...原创 2021-02-02 23:42:35 · 479 阅读 · 1 评论 -
关于Springcloud Gateway的使用 小结
1. Gateway概述1.1 简介Spring Cloud Gateway 是Spring Cloud的一个全新的API网关项目,替换了Zuul1。Gateway可以与Spring Cloud Discovery Client(如Eureka)、Ribbon、Hystrix等组件配合使用,实现路由转发、负载均衡、熔断等功能,并且Gateway还内置了限流过滤器,实现了限流的功能。Gateway基于Spring 5、Spring boot 2和Reactor构建,使用Netty作为...原创 2021-01-31 23:21:49 · 639 阅读 · 0 评论 -
关于Springcloud Hystrix的使用 小结
1. Hystrix概述1.1 背景复杂分布式体系架构的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败。而高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险。对依赖做隔离,Hystrix就是处理依赖隔离的框架,同时也是可以帮我们做依赖服务的治理和监控。1.2使用场景在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是Hystrix需要做的事情。Hystrix提...原创 2021-01-29 17:01:59 · 387 阅读 · 0 评论 -
关于AWS ElastiCache for Redis的使用 小结
@[toc]# 1. 网上比较多redis的安装教程所以就不做分享了。推荐:关于Redis的学习笔记、视频网课。原创 2021-01-22 15:50:40 · 4817 阅读 · 0 评论 -
关于Aws SNS的使用 小结
文章目录1. SNS概述2. 代码实现3. SQS subscription1. SNS概述关于SNS的功能可以参考官网的介绍:SNS官方介绍2. 代码实现官方提供了两个版本的demo,下载源码后可以很方便地找到example,至少大部分是可以的。以下是总结使用javav2版本的SNS使用,AWS官网例子也有介绍,但是涉及到一些Client配置都是默认配置所以主要对这些部分需要作出小结。首先导入依赖:<dependency> <groupId>software.原创 2020-10-24 21:44:38 · 3409 阅读 · 0 评论 -
设计模式 - 建造者模式
文章目录1. 建造者模式概述2. 建造者模式原理图1. 建造者模式概述建造者模式(生成器模式)是一种对象构建模式,主要是将复杂对象的建造过程抽象出来,并允许用户只通过指定复杂对象的类型和内容就能构建对象,而不需要知道具体构建的内部细节。2. 建造者模式原理图Product(产品角色):一个具体的产品对象。Builder(抽象构造者):创建Product对象的各个部件指定的接口/抽象类。ConcreteBuilder(具体构造者)...原创 2020-09-25 18:06:50 · 362 阅读 · 0 评论 -
关于Springboot中使用RestTemplate 小结
文章目录1. RestTemplate概述2. RestTemplate配置@Retry3. RestTemplate配置转换器4. 问题总结Synchronous client to perform HTTP requests, exposing a simple, template method API over underlying HTTP client libraries such as the JDK HttpURLConnection, Apache HttpComponents, and原创 2020-09-18 14:34:58 · 723 阅读 · 0 评论 -
设计模式 - 原型模式
文章目录1. 原型模式概述2. 原型模式类图3. 核心代码4. 关于浅拷贝和深拷贝5.1. 原型模式概述原型模式指的是用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象,允许一个对象再创建另外一个可定制的对象而无需知道如何创建的细节。2. 原型模式类图Prototype : 原型类,声明一个克隆自己的接口。ConcretePrototype: 具体的原型类 , 实现一个克隆自己的操作。Client: 让一个原型对象克隆自己,从而创建一个新的对象属性一样。3. 核心代码pu原创 2020-09-03 16:42:57 · 197 阅读 · 0 评论 -
设计模式 - 工厂模式
文章目录1. 工厂模式概述2. 简单工厂模式3. 工厂方法模式4. 抽象工厂模式1. 工厂模式概述工厂模式应该算是很常用的一种设计模式了,常用做法就是将实例化对象代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系解耦,从而提高项目的扩展和维护性。总的来说包含三种实现方式:简单工场模式、工厂方法模式、抽象工厂模式。2. 简单工厂模式假设现在有这样一个需求:订购一个披萨,披萨的种类很多,比如 GreekPizza 、 CheesePizza 等,而披萨的制作有 prepare、bake、原创 2020-09-01 10:12:20 · 175 阅读 · 0 评论 -
设计模式 - 单例模式
文章目录1. 单例模式概述2. 饿汉式静态常量3. 饿汉式(静态代码块)4. 懒汉式(线程不安全)5. 懒汉式(线程安全,同步方法)6. 懒汉式(线程安全,同步代码块)7. 双重检查8. 静态内部类9. 枚举10. 使用场景总结1. 单例模式概述单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例 ,并且该类只提供一个取得其对象实例的方法静态方法。以下小结分为八种实现方式:饿汉式静态常量、饿汉式(静态代码块)、懒汉式(线程不安全)、懒汉式(线程安全,同步方法)、懒汉式原创 2020-08-21 17:52:45 · 192 阅读 · 0 评论 -
关于类之间关系的小结
1. 因为工作需要,所以最近在重新复习设计模式。以下是根据尚硅谷来的韩顺平图解java设计模式来总结的。个人觉得这个韩老师讲得非常透彻,以此做出总结和大家分享一下。2. UML图分类:用例图、类图 、对象图、包图、组件图、部署图、交互图(时序图与协作图)、状态图、活动图。类图是描述类与类之间的关系的,是UML图中最核心的。3.类之间的关系: 依赖、泛化(继承)、实现、关联、聚合与组合。4. 依赖关系(只要类中用到了对方)1) 类中用到了对方。2) 是类的成员属性。3) 是方.原创 2020-08-14 15:36:21 · 290 阅读 · 0 评论 -
设计模式的七种设计原则
编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性、可扩展性、重用性、灵活性等多方面的挑战。原创 2020-08-14 14:52:00 · 245 阅读 · 0 评论 -
基于PowerMockito的静态方法的多种mock测试方式 小结
1. 在使用PowerMockito之前,首先要了解到Mockito这个测试工具,因为PowerMockito就是基于Mockito增强了一些功能,比如静态方法的测试。这里的可以参考:基于Mockito的多层模拟单元测试 小结2. 网上有很多PowerMockito mock静态方法的总结,以下主要是针对这几天使用过程中遇到的各种问题,从mock公共静态方法、私有方法两个方面进行总结。3. 首先先是PowerMockito的pom.xml的依赖。<properties> <原创 2020-06-17 14:11:55 · 7138 阅读 · 0 评论 -
Springboot中如何配置多个数据源 小结
1. 最近有这样一个需求,项目中涉及到了两种数据库,分别是:Postsgres和Sqlserver。每次从Postsgres中取1w条数据然后通过Mybatis调用存储过程写入到Sqlserver,所以在这个流程中,我们需要使用到两个数据源,并且在数据轮询中不断地进行切换。如图是两种解决方案: 以下,以第二种方式总结,部分参考:SpringBoot之多数据源动态切换数据源。3. 假设数据源1是默认的数据源,两者都包含有User表,那么,首先配置properties。spring...转载 2020-06-12 16:44:24 · 744 阅读 · 0 评论 -
Maven中添加本地包并且打包到jar
1. 由于最近使用到了sqljdbc4这个依赖包,但是收到限制,并不能从仓库中下载这个包,所以需要手动下载好这个jar然后在pom.xml中引入本地的jar。2. 接着,jar包以scope为system的方式导入pom文件,假设当前module结构如图:如下,引入dependency。<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4&原创 2020-06-10 19:54:43 · 371 阅读 · 0 评论 -
关于Springboot中使用PageHelper插件 小结
1. 通过mybatis查询数据的时候,如果数据量太大而又觉得手动去分页太麻烦,那么就可以使用PageHelper插件,在现有的springboot项目中只需要几步简单的配置就能得到想要的结果。2. 首先在pom.xml引入依赖。<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactI原创 2020-06-10 17:55:59 · 351 阅读 · 0 评论 -
关于Xml大文件的解析 小结
1. 对于大文件,很多时候我们是不能直接通过普通的读文件解析的。这篇文章主要是总结下解析xml大文件的思路和代码。2. 主要思路,其实就是通过封装一个切割文件的工具类,每次读取部分文件内容,比如10M。那么这里面涉及到的前后内容拼接就是重中之重了...原创 2020-02-28 18:12:19 · 1125 阅读 · 0 评论 -
关于JsonSchema转成Postgres sql ddl的小结
1. 首先,先了解下JsonSchema吧。2. 因为最近需要快速地将json schema转成建表语句,所以以下整理总结了一个比较方便的工具类。1) 先假设我们有一个这样的json schema文件:{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "Commodities.Forward.Fo...原创 2020-02-25 17:03:24 · 903 阅读 · 2 评论