笔记
文章平均质量分 79
Hannya。
这个作者很懒,什么都没留下…
展开
-
Azure Cosmos DB小白入门
Azure Cosmos DB 是一种用于新式应用开发的完全托管的 NoSQL 数据库。个位数的毫秒响应时间以及自动和即时的可伸缩性,可保证任何规模的速度。高可用性和企业级安全性可确保业务连续性。得益于全球各地的统包多区域数据分布、适用于常用语言的开源 API 和 SDK,应用的开发速度更快、效率更高。作为一项完全托管的服务,Azure Cosmos DB 使用自动管理、更新和修补,使你无需进行数据库管理。原创 2022-09-23 22:58:37 · 2208 阅读 · 1 评论 -
基于SpringBoot的JWT单点登录
单点登录单点登录SSO,分布式架构中通过一次登录,就能访问多个相关的服务。快速入门首先引入Jwt依赖<!-- JWT --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4&原创 2022-01-15 16:14:04 · 1867 阅读 · 4 评论 -
RabbitMQ实现数据库与ElasticSearch的数据同步
生产者消费者导入MQ的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>添加配置spring:rabbitmq:host: localhostport: 5672username: adminpasswo原创 2021-12-29 20:02:16 · 3647 阅读 · 0 评论 -
SpringCloud搭建ElasticSearch多条件查询
导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>添加配置文件spring: elasticsearch: rest:原创 2021-12-29 19:25:45 · 1456 阅读 · 0 评论 -
基于阿里云的OSS文件上传和下载
OSS概述OSS是基于阿里云的一个云平台文件保存的系统,我们可以将服务器的文件上传至云端从而减轻服务器的压力。初体验首先创建一个bucket (给你的云储存器配置名字等基本信息)生成AssessKey (创建密钥等信息)导入依赖文件 <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId>原创 2021-12-20 19:20:56 · 4944 阅读 · 3 评论 -
SpringCloud Alibaba - Nacos
前言随着SpringCloud Netflix组件的停止更新,大多数国内的互联网公司把目光转向Spring Cloud Alibaba,so,果断入坑,下面把学习的过程记录一下。SpringCloud Alibaba的主要组件这些是Spring Cloud Alibaba的几个主要组件Nacos 服务注册和发现组件,类似Eureka,除此还包含配置中心的功能,类似ConfigSentinel 限流、熔断和降级组件,类似HystrixSeata 分布式事务原创 2021-12-20 19:04:48 · 207 阅读 · 0 评论 -
springcloud-config-配置中心
Config的简介Config的使用Config的手动更新Config的自动更新Config的简介是SpringCloud的配置中心组件,集中管理配置文件,是客户端和服务器端CS模式,配置文件基于Git的。Config的使用在git仓库中提交goods-service服务的配置文件 goods-service-dev.properties命名规则:服务名称-profile名称(dev/test/prod).properties或ymlspring.datasource.driver-c原创 2021-12-20 18:51:51 · 114 阅读 · 0 评论 -
白话方式让你秒懂什么是消费者生产者模式什么是线程池
第一章 线程的等待和通知第01节 方法引入Object类中的方法wait() 让当前线程进入等待状态,直到被通知为止wait(long) 让当前线程进入等待状态,同时设置时间;直到被通知为止或时间结束notify() 随机通知一个等待线程notifyAll() 通知所有的等待线程注意:等待和通知方法必须是锁对象,否则会抛出IllegalMonitorStateException第02节 案例代码/** * 通过锁对象将线程等待,经过5秒通知该线程来执行原创 2021-12-09 20:39:18 · 502 阅读 · 0 评论 -
多线程的线程安全问题
第01章 快速入门第01节 线程的上下文切换多线程执行是cpu抢占时间片的方式执行。多线程创建并切换到另一个线程的过程,称之为线程的上下文切换。cup在多个线程的来回切换的过程中会造成性能的降低。第02节 线程的安全问题1. 首先要理解什么是线程安全问题?就是在多线程环境中 , 在某个线程的指令没有执行完毕,cup切换到另外的线程执行指令,导致某些重要的指令没有执行,导致了数据有误。出现线程安全问题的三个条件:多个线程同一个时间执行同一段指令或修改同一个变量2. 银行转账案例/**原创 2021-12-08 18:55:55 · 744 阅读 · 4 评论 -
多线程小练习案例
1. 设计两个线程,一个线程负责打印1100以内所有的偶数;然后,另外一个线程负责打印1100以内所有的奇数。测试时,分别设置线程的优先级,观察执行的顺序。package com.blb.thread.homework;class Thread01 extends Thread{ @Override public void run() { for (int i = 0; i < 100; i++) { if (i % 2 ==0){原创 2021-12-07 20:23:06 · 447 阅读 · 0 评论 -
多线程基础入门学习
第01章基本概念第01节 程序和进程的区别程序是一种静态概念,是保存在磁盘上的一系列文件进程是一种动态概念,是运行中的程序,一个程序包括一个或多个进程第02节 程和线程的区别进程是程序执行相关资源(CPU、内存、磁盘等)分配的最小单元进程之间是相互独立的,有自己的内存空间线程是CPU资源分配的最小单元进程包含一个或多个线程线程需要的资源更少,可以看做是一种轻量级的进程线程会共享进程中的内存,线程也有独立的空间(栈、程序计数器)线程相互通信更加方便第03节 串行原创 2021-12-07 20:14:58 · 393 阅读 · 0 评论 -
Vue-Router的基本使用
1.基本概念Vue-Cli构建的是一个单页应用,页面由多个组件(Component)组成,要实现组件的跳转,传统的a标签已经不合适了,所以Vue-Router就出现了。Vue-Router是Vue的路由框架,能实现组件之间的跳转、参数传递等功能。2.Vue-Router的配置2.1 安装 npm install router --save // 安装2.2 配置在main.js中引入router2.使用路由打开我们的vue-cli项目,在router文件夹下的index.js文原创 2021-11-29 19:54:00 · 252 阅读 · 0 评论 -
使用Vue-Cli整合SpringSecurity搭建前后端分离环境
一、前端部分1.创建一个Vue-Cli项目2.安装axios、qs、element-ui依赖 npm install qs // 安装qs npm install axios // 安装axios npm i element-ui -S // 安装elementUI3. 配置main.js文件tips:设置了原型后,在我们后面的代码编写中,可以直接通过this.的方式来调用我们安装的axios和qs。import Vue from 'vue'import App from原创 2021-11-29 19:07:48 · 515 阅读 · 0 评论 -
VueCli入门学习
概述Vue-cli是Vue的脚手架,类似Java中的SpringBoot框架,用于搭建一个标准的项目。Vue-cli大大降低了webpack的使用难度,支持热部署,有webpack-dev-server的支持,相当于启动了一个请求服务器作为测试环境,我们只关注开发就可以了。1.安装Vue-Cli1.安装NodeJS需要安装Node.js官网:https://nodejs.org/zh-cn/安装后配置环境变量:在Path中添加NodeJS的全局安装路径2.npm工具NodeJS的包管理工原创 2021-11-29 18:53:55 · 622 阅读 · 0 评论 -
如何生产简易的验证码
controller层代码实现此demo是使用javaWeb的Servlet方式写的,后期可以改写用于springBoot的controller层。代码演示package com.blb.petshop.controller;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http原创 2021-11-23 20:13:19 · 371 阅读 · 0 评论 -
05-AOP中的代理模式详细剖析
学习目标1、AOP的实现原理2、代理模式3、静态代理4、动态代理1、AOP的实现原理1.1 问题在前面AOP的案例中,为什么将一个对象加入到IOC容器后,取出该对象后,发现它的方法多了一些功能?1.2 AOP的实现原理打印对象的getClass方法,发现原类名的后面多了些东西:原因是:如果该类被AOP切中,从IOC容器取出的对象,不是该类的对象,而是该类代理类的对象。AOP的实现流程:当调用容器的getBean方法后,Spring查找对象后会判断该对象的方法是否被某个切面切原创 2021-10-25 20:31:21 · 361 阅读 · 0 评论 -
04-SpringMVC_基础
学习目标1、SpringMVC概述2、SpringMVC入门案例3、SpringMVC的执行流程4、处理参数5、返回数据1、SpringMVC概述1.1 回顾MVC设计模式1.1.1 MVC的概念一种Web和桌面应用主流的设计模式M(Model模型)负责数据访问、业务逻辑(dao、service、entity)V(View视图)负责和用户交互、展示数据(页面)C(Controller控制器)负责调用模型、更新视图(servlet-->Controller)作用:解耦,原创 2021-10-25 20:25:59 · 107 阅读 · 0 评论 -
03-Spring_AOP入门
学习目标1、AOP简介2、AOP在Spring中的实现3、AOP的注解配置4、AOP日志跟踪案例1、AOP简介1.1 AOP基本概念AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容。1.2 AOP的作用AOP的核心作用是:在程序运行期间,不修改代码的同时为程序增强功能。将必不可少的公共功能做成切面,随着程序运行切原创 2021-10-21 18:55:18 · 76 阅读 · 0 评论 -
02-Spring中ioc实现原理
6、 IOC的实现原理6.1 思考思考问题1上面案例中,配置了@Component注解后,Spring是怎么知道这个类上有这个注解的?思考问题2没有使用new关键字,Spring是如何创建对象的?思考问题3Spring是如何将创建的对象注入到对应的属性中的?6.2 IOC实现原理问题的答案是:通过反射机制+工厂模式实现工厂模式是GOF23设计模式之一,主要封装JavaBean的创建过程自定义注解基本使用@Target(ElementType.值) //Target元注解 目标原创 2021-10-21 18:47:53 · 63 阅读 · 0 评论 -
01-Spring_快速入门
学习目标1、Spring框架简介2、IOC概念3、IOC容器4、IOC的XML配置案例5、IOC的注解配置案例6、IOC的实现原理1、Spring框架简介1.1 Spring基本概念Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。原创 2021-10-20 22:03:36 · 112 阅读 · 0 评论 -
JDBC连接池
课程笔记 连接池 Spring工具类第一章 连接池第01节 基础理论1、什么是连接池池的概念概念描述: 提前创建好的一堆对象,保存到内存当中,需要使用的时候,拿出来,用完之后,就归还回去。(可借可还) 举例说明,生活实例: 定浩他是餐馆的老板,洪湖定浩小蒸龙虾。 情况一: 1. 有顾客上门就餐,定浩要亲自服务 2. 为什么需要亲自服务啊? 因为没有服务员,只有老板一人 情况二: 1. 定浩现在先需要招聘一个兼职(郭龙兼职服务员) 2. 有顾客上原创 2021-08-22 14:18:19 · 123 阅读 · 0 评论 -
JDBC基础入门
课程笔记Day29JDBC快速入门JDBC相关APISQL注入问题JDBC工具类第一章 JDBC快速入门第01节 基础理论1、JDBC介绍2、JDBC步骤操作步骤1. 导入jar包2. 找到驱动 Driver3. 获取连接 Connection4. 获取操作 Statement5. 查询结果 ResultSet6. 释放资源第02节 案例代码1、准备数据-- 1. 创建数据库DROP DATABASE IF EXISTS mydb08;原创 2021-08-19 21:16:30 · 152 阅读 · 0 评论 -
04_Mysql_事务&隔离级别
课程笔记数据库范式数据库事务数据库视图备份和还原第一章 数据库范式第01节 基础理论什么是数据库范式?我们在设计一张表的时候,需要遵循的一些数据库设计的规范。为什么需要使用范式呢?为了减少数据库的当中数据冗余。(减少重复同一个表当中,出现数据重复的情况)数据范式的分类(1) 第一范式 1NF (2) 第二范式 2NF (3) 第三范式 3NF (4) 巴斯科德范式 BCNF (5) 第四范式 4NF (6) 第五范式 5NF原创 2021-08-19 00:19:10 · 96 阅读 · 0 评论 -
03_Mysql_约束与多表关系
课程笔记Day27约束多表关系第一章 约束第01节 基础理论1、约束概述什么是约束呢?约束有什么作用呢?生活当中的约束: 法律的约束、道德的约束 前面学习过的约束: XML当中 DTD约束、Schema约束 约束: 可以保证数据的完整性、正确性。例如: 1、身份证号码,不能重复。我们会使用到 不能重复的约束,就是 唯一约束 2、姓名,不能为null。我们会使用到 不能为空的约束,就是 非空约束 3、表和表之间建立的关系,可以使用到 主键和外键等约束2、约束分类原创 2021-08-17 20:31:29 · 93 阅读 · 0 评论 -
02_Mysql_查询数据
课程笔记单表查询多表查询多表练习第一章 单表查询第01节 分组查询1、语法格式基础语法-- 简化写法SELECT 分组字段,聚合函数 FROM 表名称 GROUP BY 分组字段;-- 完整写法SELECT 分组字段,聚合函数 FROM 表名称 WHERE 分组前条件 GROUP BY 分组字段 HAVING 分组后条件;理解:分组的效果1、分组之后,查询的结果只能是两个内容:要么是 分组的字段,要么是聚合函数2、分组的效果,相当于是 字段当中,对相同的内容,进行去重合原创 2021-08-17 20:27:00 · 351 阅读 · 0 评论 -
21-Java-XML&正则表达式
学习目标1、了解XML的发展跟历史2、了解XML跟HTML的区别3、熟练XML的语法规则3、了解XML的约束4、熟练XML的解析5、熟练正则的解析第1章 XML1.1 概述XML(EXtensible Markup Language)可扩展的标记语言。主要用于数据交换。在HTML发展过程中,由于游览器厂商的恶性竞争,都在兼容不规范的写法,以用来吸引开发者。这与W3C的初衷相违背。于是W3C制定了XML标准,想以此替代HTML进行数据展示。但此并不能吸引开发者,XML最终以失败告终。XML原创 2021-08-09 21:53:37 · 515 阅读 · 2 评论 -
20-Java-对象操作流与深浅克隆与属性集
课程笔记Day20对象操作流属性集Properties第一章 对象操作流第01节 ObjectOutputStream快速入门//目标:学习对象操作流的快速入门(对象序列化操作)public class Test01 { public static void main(String[] args) throws IOException { String path = "JavaSEDay20\\dir\\文件01.txt"; //1.创建对象原创 2021-08-06 21:34:14 · 114 阅读 · 0 评论 -
关于IO流与集合综合应用的一个小案例
需求第01题 对象存储问题存在这样的学生数据:(Student类)姓名:张三,年龄: 23,性别:女姓名:李四,年龄 24,性别:男姓名:王五,年龄 25,性别:女1、将这些数据存储到集合当中(内存存储)2、将集合数据存储到文件当中(硬盘存储) studentinfo.txt存储的格式如下:张三@23@女李四@24@男王五@25@女第02题 对象读取问题将上一题当中的数据。文本文件 studentinfo.txt 的数据,读取到集合当中。集合固定为 ArrayList原创 2021-08-05 22:37:32 · 212 阅读 · 2 评论 -
19-Java-异常与IO
课程笔记Day19字符文件流转换流字符缓冲流第一章 字符文件流第01节 基础理论为什么需要使用字符流呢?因为字节流操作文本文件的时候,容易出现 中文乱码问题。这种情况下,我们需要使用字符流。例如: 将文本文件的数据,读取到控制台当中,展示结果(采用字节流)编码表介绍公式char = byte + 编码表;字符 = 字节(0和1) + 编码表;//字符流的由来就是 字节流和编码表的组合。第02节 FileWriter字符文件输出流 FileWriter构造方法原创 2021-08-05 22:23:51 · 64 阅读 · 0 评论 -
18-Java-异常与IO
学习目标1、了解异常和错误的区别2、了解异常的分类3、掌握异常的捕获跟处理3、掌握自定义异常4、掌握IO流的分类跟功能5、掌握使用字节流跟字符流读写数据6、掌握缓冲流、对象流、Properties的使用第1章 异常1.1 概述 正常情况下,小王从家里去上班,路上大概需要1个小时。但是,偶尔总会有各种情况发生,比如堵车、撞车等。这就是上班过程中的异常行为。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tnQUwo0d-1628173011828)原创 2021-08-05 22:20:49 · 153 阅读 · 0 评论 -
17-Java-JDK8实践类与异常
课程笔记Day17JDK8的时间类异常类第一章 JDK8的时间类第01节 基础理论常用类1. LocalDateTime 操作日期和时间的。日期(年月日星期)时间(时分秒毫秒)2. LocalDate 操作日期(年月日星期)3. LocalTime 操作时间(时分秒毫秒)备注:JDK8的时间类是 线程安全的第02节 常用API创建对象格式1. 获取当前时间 LocalDateTime ldt = LocalDateTime.now(); 2. 设置原创 2021-08-05 22:16:25 · 200 阅读 · 0 评论 -
16-Java-JDK8新特性
课程笔记Day16第一章 Lambda表达式 第01节 基础理论 第02节 系统函数式接口 第03节 省略策略 第04节 Lambda和匿名内部类第二章 方法引用 第01节 体验一下 第02节 成员方法引用 第03节 静态方法引用 第04节 构造方法引用第三章 Stream流 第01节 基础理论 第02节 常用API课程笔记Day16Lambda 表达式方法引用Stream流JDK8的时间类第一章 Lam原创 2021-08-03 15:05:55 · 123 阅读 · 0 评论 -
14-Java-集合01
课程笔记Day14Collection 集合List 集合Set 集合第一章 Collection集合第01节 基础理论集合的由来数组有什么特点?1. 可以存储任意数据类型(基本数据类型或者引用数据类型)2. 数组的长度是固定的,不可以改变的上面特点当中,我们知道数组的长度固定,无法满足变化的需求,有时候,长度需要不断的变化,这种情况下,怎么办?就需要采用集合类去完成。集合的特点:1. 可以存储引用数据类型。(不能存放基本数据类型)2. 长度是可变的集合是一种容器,比方原创 2021-07-30 00:54:59 · 89 阅读 · 0 评论 -
13-Java常用类02
学习目标1、掌握String类的用法2、掌握String类、StringBuffer类、StringBuilder类的区别3、掌握基本类型跟包装类型的转换4、掌握自动装箱跟自动拆箱的概念5、掌握BigInteger类跟BigDecimal类的用法6、了解DecimalFormat类的用法7、掌握枚举的用法第1章 String类1.1 概述 基本数据类型char可以用来表示单个字符,但生活中跟项目中通常需要表示多个字符,使用char就显得力不从心。JDK提供了String类来达到我们原创 2021-07-28 20:37:45 · 91 阅读 · 0 评论 -
12-Java-常用类01
学习目标1、掌握Object类的相关用法2、掌握==跟equals的区别3、掌握Math类的常用方法3、掌握Random类的基本方法 4、掌握日期类和字符串类的转换方式5、掌握日期和日历类的转换方式第1章 Object类1.1 概述 java.lang.Object在Java中是万类之祖,即所有类的父类。Java中的继承是单继承的,如果一个类没有定义任何父类则这个类默认继承java.lang.Object,故其中定义的方法可以被任意引用类型使用,前提是拥有足够的权限。 根据JDK的原创 2021-07-27 19:38:53 · 57 阅读 · 0 评论 -
11-Java-面向对象(多态与内部类)
学习目标1、掌握模板设计模式思想及实现2、掌握Java多态的使用3、掌握引用数据类型转换及异常处理4、掌握几种内部类的使用5、理解Java内存管理与垃圾回收机制第1章 模板设计模式1.1 模板设计模式概述模板设计模式定义: 定义一个操作中的算法骨架,将通用步骤以模板形式封装在父类模板中,将具体细节步骤延迟到子类中实现。模板设计模式是一种行为设计模式,一般是准备一个抽象类,将部分逻辑以具体方法或者具体的构造函数实现,然后声明一些抽象方法,这样可以强制子类实现剩余的逻辑。不同的子类以不同的方原创 2021-07-26 20:07:17 · 228 阅读 · 0 评论 -
10-java-面向对象(抽象类与接口)
学习目标1、掌握抽象类的定义及使用2、掌握接口的定义及使用3、掌握比较器的使用第1章 抽象类1.1 抽象类概述由来:当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体。分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。例如:描述讲师的行为:工作。描述督导的行为:工作。讲师、督导之原创 2021-07-23 17:15:36 · 75 阅读 · 0 评论 -
09-java-面向对象(封装与继承)
学习目标1、理解Java封装的意义2、掌握封装的使用3、掌握访问权限修饰符4、掌握Java继承的使用及注意事项5、掌握super、final关键字第1章 封装Java语言有三大特性:封装、继承、多态。封装:主要是将类中的部分代码实现细节隐藏、封装起来,不直接对外提供访问;继承:主要体现的父子类的关系上,提高了软件的可重用性和可扩展性;多态:包括编译时多态和运行时多态,通过调用不同参数或名称的方法来决定父类对象动态调用哪个子类方法,增强了代码的灵活度。Animal d= new A原创 2021-07-22 20:32:52 · 105 阅读 · 0 评论 -
08-java-面向对象(基础)
学习目标1、掌握方法的可变参数定义及使用2、掌握递归算法以及其他优缺点3、掌握构造方法的定义及使用4、掌握this、static、package、import关键字5、熟练实现一些常用算法第1章 方法的可变参数1.1 方法的可变参数引入需求一:现在假如有这样一个设计需求,一个工具类中,要实现一个求2个整数之和的方法;接着,还需要实现一个求2个小数求和的方法。针对上面这个需求,最开始我们可以定义两个方法getSum1()和getSum2()分别求和。但是,如果类似需求增多了呢?这种定义方原创 2021-07-21 19:52:34 · 169 阅读 · 2 评论 -
07-java-面向对象(类与对象)
学习目标1、理解Java面向对象的思想2、掌握类与对象的定义和使用3、掌握成员变量与局部变量的区别4、掌握方法的定义与使用5、掌握方法的参数传递6、掌握方法重载的定义与使用第1章 面向对象思想1.1 面向对象思想介绍Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性原创 2021-07-20 20:26:58 · 256 阅读 · 0 评论