RabbitMQ学习札记 1.MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 2.MQ 的优势和劣势 优势: 应用解耦:提高系统容错性和可维护性 异步提速:提升用户体验和系统吞吐量 削峰填谷:提高系统稳定性 如订单系统,在下单的时候就会往数据库写数据。但是数据库只能支撑…
Shiro框架快速学习札记 ⼀、权限的管理 1.1 什么是权限管理 基本上涉及到⽤⼾参与的系统都要进⾏权限管理,权限管理属于系统安全的范畴,权限管理实现对⽤⼾访问系统的控制,按照安全规则或者安全策略控制⽤⼾可以访问⽽且只能访问⾃⼰被授权的资源。 权限管理包括⽤⼾⾝份认证和授权两部分,简称认证授权。对于需要访问控制的资源⽤⼾⾸先经过⾝ 份认证,认证通…
解决Non-resolvable parent POM: Could not find artifact 出现的问题 在编译spring boot 多模块项目的时候,往往出现 Non-resolvable parent POM: Could not find artifact 后面跟一串其它信息,网上大部分解决方案是修改pom.xml文件的rela…
解释 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 单例类只能有一个实例。 …
解释 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 优点: 当一个产品族中的多个对…
简单工厂模式,虽然不在23种设计模式中。但是可以认为是工厂模式的一种特殊实现,并且在日常中使用广泛,所以还是值得我们去学习的。 解释 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,是一种创建型的设计模式,关注于实例对象创建。 由一个工厂对象通过判断传入的参数,决定…
介绍 模板方法是一种行为类设计模式。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 模板方法是一个定义在父类的方法(抽象类),具体实现由子类实现 优点: 1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实现。 缺点: 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大…
一、设计模式的分类 总体来说设计模式分为三大类: (1)创建型模式,共五种: 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 (3)行为型模式,共十一种: 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录…
这里推荐一种不容易出错的 “安装” 方法:二进制。 说是安装,其实并不涉及到任何向导程序,总的来说只有两步: 下载并解压 配置环境变量 1.OpenJDK 与 Oracle JDK 的区别 直接说结论好了,基本上可以认为 OpenJDK 在性能、功能和执行逻辑上都和官方的 Oracle JDK 是一致的。 2.以 Centos下安装 JDK 11 …
因为最近自己练手一个项目,需要用到全国省份市区数据,但是呢网上很多都不全或者需要收费才行。 于是就找到了民政局的网站,民政局的全国省份市区数据会定期更新,如果这个都不全那么还有那全对不对,所以就爬取民政局省市区数据,用于地市下拉框三级联动~确保数据的完整性. url:http://www.mca.gov.cn/article/sj/xzqh/198…
本文主要分为两个部分: 第一部分: 主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做? 第二部分: 主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。 第一部分: 首先,在做接口测试的过程中,经常有后端开发会问: 后端接口都测试什么…
Java 15 它不是一个长久支持(LTS)版本。虽然该版本并不是长期版本,但即使再发布新版本也是在此基础上的。 在JDK15中新增了以下新特性: 密封类的使用 隐藏类的理解 instanceof模式匹配 ZGC的功能转正 文本块的功能转正 Records二次预览 EdDSA签名算法重新实现SocketAPI禁用偏向锁定 ShenandoahGC转…
Java 14 它不是一个长久支持(LTS)版本。虽然该版本并不是长期版本,但即使再发布新版本也是在此基础上的。 在JDK14中新增了以下16个新特性: 305: instanceof的模式匹配 (预览) 343: 打包工具 (Incubator) 345: G1的NUMA内存分配优化 349: JFR事件流 352: 非原子性的字节缓冲区映射 3…
Java 13 它不是一个长久支持(LTS)版本。 重点特性列表: 动态应用程序类-数据共享 增强 ZGC 释放未使用内存 Socket API 重构 Switch 表达式扩展(预览功能) 文本块(预览功能) 动态应用程序类-数据共享 JDK5引入了Class-Data Sharing可以用于多个JVM共享class,提升启动速度,最早只支持sys…
Java 12 它不是一个长久支持(LTS)版本。 重点特性列表: Switch 表达式(预览特性) 文件对比增强 Switch 表达式(预览特性) 在 Java 12 中,对 Switch 表达式的写法进行了改进,虽然是一个语法糖的改进,也让 Switch 的代码编写变得更加优雅,如再Java12之前的switch: String day = "…
Java 11是这是 Java 大版本周期变化后的第一个长期支持版本(LTS版本,Long-Term-Support,持续支持到2026年9月),是目前全球使用最多的LTS版本之一。 官方新特性: 本地变量类型 字符串加强 集合加强 加强文件读写 本地变量类型 这个新功能是java10为Java增加一些语法糖 - 简化它并改善开发者体验 var s…
从Java 10 开始,Java的迭代周期缩短为半年,半年发布一个版本。Java10它号称有109项新特性,包含12个JEP。 特性列表 局部变量的类型推断 var关键字 GC改进和内存管理 并行全垃圾回收器 G1 垃圾回收器接口 线程-局部变量管控 合并 JDK 多个代码仓库到一个单独的储存库中 新增API:ByteArrayOutputStre…
REPL (JShell):交互式编程环境。 HTTP 2 客户端:HTTP/2标准是HTTP协议的最新版本,新的 HTTPClient API 支持 WebSocket 和 HTTP2 流以及服务器推送特性。 改进的 Javadoc:Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。…
想必绝大部分项目还在运行着Java8。接下来就开始梳理一下吧。 Java8 优势:速度快、代码更少(增加了新的语法 Lambda 表达式)、强大的 Stream API、便于并行、最大化减少空指针异常 Optional; 一、Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据…
数据库使用的是sqlserver,JDK版本1.8,运行在SpringBoot环境下,对比3种可用的方式: 反复执行单条插入语句 xml拼接sql 批处理执行 先说结论:少量插入请使用反复插入单条数据,方便。数量较多请使用批处理方式。(可以考虑以有需求的插入数据量20条左右为界吧,在我的测试和数据库环境下耗时都是百毫秒级的,方便最重要)。 无论何时…