自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 SpringBoot 统一功能处理

1. 统⼀⽤户登录权限验证;2. 统⼀数据格式返回;3. 统⼀异常处理。

2022-07-28 15:39:18 581 6

原创 Spring AOP 详解

⾯向切面编程,它是⼀种思想,它是对某一类事情的集中处理。比如用户登录权限的效验,没学AOP之前,我们所有需要判断用户登录的页面(中的⽅法),都要各⾃实现或调用用户验证的方法,然而有了AOP之后,我们只需要在某⼀处配置⼀下,所有需要判断用户登录页面(中的方法)就全部可以实现用户登录验证了,不再需要每个方法中都写相同的用户登录验证了。SpringAOP是⼀个框架,提供了⼀种对AOP思想的实现,它们的关系和IoC与DI类似。SpringAOP切点的定义如下其中pointcut*........

2022-07-27 15:28:41 793 2

原创 MyBatis 查询数据库

MyBatis是⼀款优秀的持久层框架,它⽀持⾃定义SQL、存储过程以及⾼级映射。MyBatis去除了⼏乎所有的JDBC代码以及设置参数和获取结果集的⼯作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接⼝和JavaPOJO(PlainOldJavaObjects,普通⽼式Java对象)为数据库中的记录。简单来说MyBatis是更简单完成程序和数据库交互的⼯具,也就是更简单的操作和读取数据库⼯具。...............

2022-07-26 18:26:50 2544 46

原创 SpringMVC 框架详解

官方对于SpringMVC的描述是这样的SpringWebMVC是基于ServletAPI构建的原始Web框架,从一开始就包含在Spring框架中。它的正式名称“SpringWebMVC”来自其源模块的名称(Spring-webmvc),但它通常被称为“SpringMVC”。SpringMVC是⼀个Web框架。SpringMVC是基于ServletAPI构建的。然而要真正的理解什么是SpringMVC?我们首先要搞清楚什么是MVC?MVC是。.........

2022-07-15 15:09:17 1618 5

原创 SpringBoot 日志文件

日志是程序的重要组成部分,我们可以通过日志实现以下功能:Spring Boot 项目在启动的时候默认就有日志输出,如下图所示:以上内容就是 Spring Boot 输出的控制台日志信息。通过上述日志信息我们能发现以下 3 个问题:自定义打印日志的实现步骤:在程序中获取日志对象需要使用日志工厂 ,如下代码所示:注意 对象是属于 包下的:日志对象的打印方法有很多种,我们可以先使用 方法来输出日志,如下代码所示:启动项目,在浏览器输入url:,可以看到控制台打印了该日志:日志的级别就是为了筛选符

2022-07-13 14:22:25 571 1

原创 SpringBoot配置文件

整个项目中所有重要的数据都是在配置文件中配置的,比如:Spring Boot 配置文件主要分为以下两种格式:如下图所示:properties 类型的配置文件就属于旧版配置类型,也是创建 Spring Boot 项目时默认的文件格式,而 yml 属于新版配置类型。特殊说明例如,properties 和 yml 中都配置了“server.port”将port配置为:将port配置为:启动项目后可以看到端口为 配置文件是最早期的配置文件格式,也是创建 Spring Boot 项目默认的配置文件。

2022-07-11 15:52:16 1185 53

原创 SpringBoot项目创建及运行

SpringBoot是由Pivotal团队提供的全新框架,是一个基于Spring的Java框架,目的是简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。如果使用的是社区版IDEA,需要下载Spring Assistant(Spring 助⼿)插件才能创建 Spring Boot 项目,如下图所示:安装好之后,就有了 Spring Assistant 选项了,如下图所示:接下来就可以开始创建项目了。第一步选择 Spring Assist

2022-07-05 21:34:00 8531 34

原创 从输入URL到页面展示发生了什么?

从输入url按下回车后,我们进入了第一步就是 DNS 解析过程,首先需要找到这个 url 域名的服务器 ip,为了寻找这个 ip,浏览器首先会寻找缓存,查看缓存中是否有记录缓存的查找记录为:浏览器缓存 -> 系统缓存 -> 路由器缓存,缓存中没有则查找系统的 hosts 文件中是否有记录。如果没有缓存则查询 DNS 服务器,得到服务器的 ip 地址后,浏览器根据这个 ip 以及相应的端口号发送连接请求;如果DNS服务器中没有解析成功,他会向上一步获得的顶级DNS服务器发送解析请求。这个连接请求到达服务器端后

2022-06-19 14:03:47 2484 40

原创 网络原理初识

数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。根据网络互连的规模不同,可以划分为局域网(LAN)和广域网(WAN)。局域网,即 Local Area Network,简称 LAN。Local 即标识了局域网是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。局域网组建网络的方式分为以下几种:基于网络直连基于集线器组建基于交换机组建基于交换机和路由器组建广域网,即 Wide Area

2022-06-13 23:00:00 296 26

原创 Cookie和Session的区别

Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,实际上Cookie是服务器在本地机器上存储的一小段文本,并随着每次请求发送到服务器。例如登陆⽹站成功后,第⼆次访问的时候服务器就能知道该请求是否是已经登陆过了.图中的"令牌"通常就存储在Cookie字段中,此时在服务器这边就需要记录令牌信息,以及令牌对应的⽤户信息,这个就是Session机制所做的⼯作.服务器同⼀时刻收到的请求是很多的.服务器需要清除的区分清楚每个请求是从属于哪个⽤户,就需要在服务器这边记录每个⽤户令牌以及⽤户的信息的

2022-06-13 16:50:21 185

原创 Linux基础使用(超详细)

Linux 是一个树形目录结构.几个特殊的目录:绝对路径 vs 相对路径:形如: 以根目录开头的, 称为绝对路径.形如: 以 或者 开头的, 称为相对路径.使用 tab 键补全:所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.语法: 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:语法: 功能:显示用户当前所在的目录Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。语法: 功

2022-06-12 19:17:13 954 38

原创 Java文件操作和IO

我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时, 往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概 念,就类似办公桌上的一份份真实的文件一般。文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数据 而存在,我们把这部分信息可以视为文件的元信息。随着文件越来越多,对文件的系统管理也被提上了日程,如何进行文件的组织呢,一种合乎自然 的想法出现了,就是按照层级结构进行组织 —— 也就是

2022-06-05 21:55:25 821 44

原创 Linux服务器部署JavaWeb项目

查看所有的 Java 安装包:安装jdk1.8:验证是否安装成功:1.2 安装 MySQL1.2.1 下载并安装 MySQL下载并安装 MySQL,执⾏以下命令:执⾏以上步骤可能会报 GPG 公钥错误,如下图所示:此时先执⾏以下命令导⼊ GPG 公钥:之后再重新执⾏上⾯安装 MySQL 的命令,安装成功之后的效果如下:启动命令:1.2.3 查看 MySQL 默认密码使⽤以下命令登录 MySQL:之后再输⼊上⼀步的默认密码执⾏以下命令修改 MySQL 密码(修改为12345678)

2022-06-02 12:48:35 2272 40

原创 IDEA下配置Maven

1.什么是MavenMaven是⼀个项目构建⼯具,创建的项目只要遵循Maven规范(称为Maven项目),即可使用Maven来进行:管理jar包、编译项目,打包项目等功能。2.配置并使用MavenMaven⽆需安装,因为Idea已经自带了,打开Idea搜索 Maven 就能找到,如下图所示:2.1 Maven依赖管理流程Maven项目中可以引入依赖包(引入外部框架的jar包),引入后,加载依赖包的方式为在Maven仓库中搜索。Maven仓库可以理解为存放依赖包的仓库,分为本地仓库和远程仓库

2022-05-30 19:45:42 825 15

原创 520到了,教你做个JavaWeb表白墙小项目

目录1.配置 Maven 项目1.1 创建 Maven 项目1.2 引入相关依赖1.3 项目总结构2. 约定前后端交互接口3.服务端代码3.1创建Message类3.2 创建工具类3.3 添加信息类(AddMessage)3.4 查询信息类(MessageList)4. 前端代码5.创建数据库6.部署项目7.效果展示1.配置 Maven 项目1.1 创建 Maven 项目之后就是选择存放路径和命名,比较简单,就不做过多赘述啦!.

2022-05-19 22:43:52 23439 161

原创 HTTP协议和Tomcat服务器

目录1.HTTP 是什么2.HTTP 工作过程2.1HTTP 协议格式2.1.1抓包工具的使用2.1.2抓包工具原理2.1.3抓包结果分析2.1.4协议格式总结3.HTTP 请求 (Request)3.1请求地址 URL3.2 认识方法3.3请求 "报头" (header)3.4请求 "正文" (body)4.HTTP 响应4.1认识 "状态码" (status code)4.2响应 "报头" (header)4.3...

2022-05-15 22:25:39 2808 73

原创 【前端三剑客三】 JavaScript

目录1. 初识 JavaScript1.1 什么是 JavaScript1.2JavaScript 、HTML 、CSS 之间的关系1.3JavaScript 的组成2.JavaScript 的书写形式2.1 行内式2.2内嵌式2.3外部式3. JavaScript 基本语法3.1 注释3.2 输入输出3.3 变量3.3.1 变量初始化3.3.2变量的命名规范3.4 基本数据类型3.5 流程控制3.5.1if3.5...

2022-05-08 11:55:50 2414 95

原创 【前端三剑客二】 CSS

1. 什么是 CSS层叠样式表 (Cascading Style Sheets)。CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果。 能够做到页面的样式和结构分离。两张图说明CSS的作用:CSS就好比化妆,能让人(页面)好看的连麻麻都认不出来!2. 基本语法规范<style> 选择器{ 属性名:属性值; 属性名:属性值; }</style>选择器:要修饰的对象(东西) 属性名:修饰对象的哪一个属

2022-05-05 18:57:28 2337 26

原创 【前端三剑客一】 HTML

1. 什么是 HTMLHTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言:HyperTextMarkupLanguage HTML 不是一种编程语言,而是一种标记语言 标记语言是一套标记标签(markup tag) HTML 使用标记标签来描述网页 HTML 文档包含了HTML标签及文本内容 HTML文档也叫做web 页面2. HTML 结构HTML 代码是由 "标签" 构成的。形如:<body>hel...

2022-05-04 19:44:17 2444 75

原创 Java多线程(九):JUC包下的常见类

目录前言1.ReentrantLock2.Semaphore3.CountDownLatch4.CyclicBarrier前言java.util.concurrent 下的类就叫 JUC 类,JUC 下典型的类有:ReentrantLock :可重入锁; Semaphore :信号量; CountDownLatch :计数器; CyclicBarrier :循环屏障。1.ReentrantLock可重入互斥锁. 和 synchron...

2022-04-30 18:19:37 1918 25

原创 Java多线程(八):常见的锁策略

目录1. 乐观锁&悲观锁1.1 乐观锁1.1.1 乐观锁定义1.1.2 乐观锁实现(CAS)1.1.3 CAS应用:AtomicInteger:1.1.4 CAS缺点(ABA问题)1.2 悲观锁1.2.1 悲观锁定义1.2.2 悲观锁应用2.公平锁&非公平锁3. 读写锁3.1 读写锁的定义3.2 读写锁示例3.3 独占锁3.4共享锁4.可重入锁5. 自旋锁&挂起等待锁1. 乐观锁&悲观锁...

2022-04-28 21:54:45 2079 73

原创 Java多线程(七):单例模式详解

目录1. 什么是单例模式2. 单例模式的特点3. 单例模式的实现3.1 单例模式实现步骤3.2 单例模式实现方式3.2.1 饿汉方式3.2.2 懒汉方式1. 什么是单例模式java中单例模式是一种常见的设计模式,单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个...

2022-04-27 21:16:35 2157 12

原创 Java多线程(六):线程池详解

目录1. 什么是线程池2. 为什么要使用线程池3. 线程池创建3.1固定数量的线程池(Executors.newFixedThreadPool)3.1.1 创建固定数量的线程池3.1.2线程池返回结果3.1.3 submit() VS execut()3.2.4 线程工厂3.2带缓存的线程池(Executors.newCachedThreadPool)3.3执行定时任务(Executors.newSingleThreadExecutor)3.3.1 延迟...

2022-04-26 23:10:02 5837 104

原创 Java多线程(五):线程之间的通讯

目录1. 线程通讯1.1 方法介绍1.1.1 wait() 使用1.1.2 notify 使用1.1.3notiyAll 使用1.1.4 注意事项2. wait() VS wait(long timeout)3. wait VS sleep3.1wait(0) 与 sleep(0) 的区别3.2 wait 和 sleep 释放锁3.3wait和sleep区别(相同点&不同点)4.线程休眠和指定唤醒:LockSupport4.1 park...

2022-04-23 23:00:05 2427 43

原创 Java多线程(四):什么是死锁以及如何解决死锁

1. 什么是死锁 死锁 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。也就是两个线程拥有锁的情况下,又在尝试获取对方的锁,从而造成程序一直阻塞的情况。死锁代码演示:public class DeadLock { public static void main(String[] args) { Object lockA = new Object(); Obj...

2022-04-21 18:53:39 3378 18

原创 Java多线程(三):线程安全问题与解决方法

1. 什么是线程安全问题如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该的结果,则说这个程序是线程安全的。线程不安全指的是程序在多线程的执行结果不符合预期。2. 导致线程不安全的因素2.1 抢占式执行2.2 多个线程同时修改了同一个变量public class ThreadDemo16 { static class Counter { // 变量 private int number = 0; ...

2022-04-20 19:14:25 2072 19

原创 Java多线程(二):线程的常用方法和状态

1.线程常用方法1.1 线程终止李四⼀旦进到工作状态,他就会按照行动指南上的步骤去进行工作,不完成是不会结束的。但有时我们需要增加⼀些机制,例如老板突然来电话了,说转账的对⽅是个骗子,需要赶紧停止转账,那张三该如何通知李四停止呢?这就涉及到我们的停止线程的方式了。目前常见的有以下两种方式:通过 自定义标记符 来进行中断。 调用interrupt() 方法来中断。1.1.1 自定义标记符 // 1.先声明一个标识符 private volatile static b..

2022-04-19 17:21:18 1413 10

原创 Java多线程(一):线程的创建方式和常见构造方法以及常用属性

1. 认识线程1.1 什么是线程一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码。还是回到我们之前的银行的例子中。之前我们主要描述的是个人业务,即一个人完全处理自己的业务。我们进一步设想如下场景:一家公司要去银行办理业务,既要进行财务转账,又要进行福利发放,还得进行缴社保。如果只有张三一个会计就会忙不过来,耗费的时间特别长。为了让业务更快的办理好,张三又找来两位同事李四、王五一起来帮助他,三个人分别负责...

2022-04-18 18:30:30 1118 2

原创 枚举和Lambda表达式

1.枚举,使⽤ enum 定义,enum 和类是同级别的。 枚举优点:1. 增强了代码的可读性。2. 减少了传递参数的错误概率。3. switch 判断更⽅便,语法清晰。4. 代码⾜够简洁、优雅。5. 枚举有内置⽅法,功能更强⼤。 枚举缺点:不可继承,⽆法扩展。枚举常⽤⽅法:values()/ordinal()/valueOf()/compareTo()2.Lambda 表达式使⽤ Lambda 表达式可以更简单、⽅便的实现代码的业务功能。 它的基本语法:优点:1.

2022-04-17 18:49:35 741 2

原创 计算机是如何工作的

1.计算机的构成现代的计算机,⼤多遵守冯诺依曼体系结构。冯诺依曼体系由冯诺依曼提出的,因此冯诺依曼被曾为计算机之父。冯·诺依曼(John von Neumann,1903年12⽉28⽇-1957年2⽉8⽇), 美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之⼀。冯·诺依曼是布达佩斯⼤学数学博⼠,在现代计算机、 博弈论、核武器和⽣化武器等领域内的科学全才之⼀,被后⼈称为“现代计算机之父”、“博弈论之⽗”。讲一个故事:冯诺依...

2022-04-14 22:01:07 1667 1

原创 MySQL JDBC 编程

1. 数据库编程的必备条件编程语言:如Java,C、C++、Python等 数据库:如Oracle,MySQL,SQL Server等 数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。2. Java的数据库编程:JDBC在了解 JDBC 概念之前,我们先来想..

2022-04-13 17:52:59 495

原创 MySQL事务

1.什么是事务事务(Transaction)是将⼀组操作封装成⼀个执行单元(封装到⼀起),这⼀个执⾏单元要么⼀起执行成功,要么⼀起失败,不会出现执行“⼀半”的情况。2.为什么用事务以银⾏转账为例,A 转账 B 转账,那么它的执⾏流程是这样的:A 账户 -500 B 账户 +500试想⼀下,如果执⾏了⼀半,断点了或者程序崩溃了,那么 A 账号的钱就永久消失了?那怎么办?⽤事 务就可以解决,封装成⼀个执⾏单元,要么⼀起成功,要么⼀起失败。使⽤数据库演示⼀下,准备测试表:drop

2022-04-10 20:52:56 1565 2

原创 MySQL索引

1.什么是索引索引是⼀种特殊的⽂件,包含着对数据表⾥所有记录的引⽤指针。可以对表中的⼀列或多列创建 索引,并指定索引的类型,各类索引有各⾃的数据结构实现。数据库引擎简介MySQL 数据库有很多引擎,MySQL 和引擎的关系就像汽⻋⼚商和汽⻋⻋型的关系,⼀个⼚商(MySQL)可以有多种⻋型(多个引擎)。MySQL 最著名的引擎有两个:InnoDB 和 MyISAM,MyISAM 是 MySQL 5.5 之前默认的引擎,MySQL 5.5 之后的默认引擎是 I...

2022-04-06 21:52:18 731 1

原创 MySQL高级查询

a. 聚合函数:MAX、MIN、AVG、COUNT、SUMb. 分组查询:GROUP BY... HAVING ...c. 内连接、外连接、自连接、子查询、合并查询

2022-03-09 21:29:41 2395

原创 MySQL表约束和表设计

1. 数据库约束1.1 什么是表约束表约束是在创建表的时候,设计⼀些表的约束条件,⽤来保证数据的合法性和数据的正确性。例如⼀个账号只能绑定⼀个⼿机号,那么⼿机号就不能重复,不能被多个账号绑定使⽤,所以它应该设置唯⼀约束。⽽主键是⽤来标识数据的,因此它不能为 NULL,也不能为空,所以他需要设置⾮空约束或(主键约束,主键约束也不能为 NULL)。1.2 为什么需要表约束就像法律是⽤来规范⼈们的正确⾏为的⼀样,表约束也是为了规范程序员正确使⽤表的,但表约束是预先...

2022-03-02 17:17:57 669

原创 MySQL表的增删改查

MySQL的增删改查:CRUD:增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)

2022-03-01 17:21:38 614

原创 MySQL数据库基础

1. SQL 命令分类DDL【Data Definition Language】数据定义语⾔,⽤来维护存储数据的结构代表指令: create,drop, alter; DML【Data Manipulation Language】数据操纵语⾔,⽤来对数据进⾏操作代表指令:insert,delete,update,DML中⼜单独分了⼀个DQL,数据查询语⾔,代表指令:select; DCL【Data Control Language】数据控制语⾔,主要负责权限管理和事务代表指令:grant,revok

2022-02-22 21:18:47 542

原创 认识和安装MySQL

1 数据库介绍1.1什么是MySQLMySQL 是⼀个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,后⾯被 SUN 和 Oracle 公司收购。MySQL 是最流⾏的关系型数据库管理软件之⼀。1.2 什么是数据库数据库是⽤来保存结构化信息和数据的集合,简单来说数据库就是⽤来存储和查询数据的。1.3 数据库和 MySQL 关系数据库是“⽬标”⽽ MySQL 是具体的实现“⼿段”,就像我们中午要吃⼤餐,⽽⼤餐有很多种,你是吃...

2022-02-21 17:16:36 731

原创 Java 认识异常

目录1. 异常的背景初识异常算数异常数组下标越界异常空指针异常防御式编程异常的好处2. 异常的基本用法捕获异常异常处理流程抛出异常异常说明3. Java 异常体系4. 自定义异常类1. 异常的背景初识异常在之前的学习中,我们其实已经接触到了Java当中的“异常”了。算数异常System.out.println(10 / 0);// 执行结果// Exception in thread "main" java.lan...

2021-11-20 20:28:21 309

原创 Java String类

目录1.创建字符串2. 字符串比较相等eqals方法3. 字符串常量池4.字符串不可变5. 字符, 字节与字符串5.1 字符与字符串5.2 字节与字符串6.StringBuffer 和 StringBuilder1.创建字符串常见的构造 String 的方式:// 方式一String str = "Hello World";// 方式二String str2 = new String("Hello World");// 方式三char[] a...

2021-11-20 15:08:38 169 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除