自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SixFeet Under的博客

当下每一次想要努力的念头,都有可能是未来的你在向你祈求。

  • 博客(52)
  • 问答 (1)
  • 收藏
  • 关注

原创 一万字完整总结 SpringMVC,确定不进来了解一下吗?

文章目录Spring MVC 框架介绍什么是 MVCSpringMVC 的特点SpringMVC 架构原理解析SpringMVC 配置pom.xml 文件引入依赖web.xml 文件头部信息格式配置 DispatcherServlet 中央调度器中央调度器 ``创建请求控制器创建 springmvc 的配置文件如何解决访问静态资源注解@Controller 注解@RequestMapping 注解@RequestMapping 派生注解SpringMVC 支持 ..

2022-05-25 15:22:05 224

原创 Redis 一篇足以

这篇文章超详细介绍Redis入门教程,本文详细介绍了Redis各个方面的知识

2022-05-17 10:19:19 809

原创 Spring Boot + Spring Cloud + Spring Cloud Alibaba 版本对照表

spring-cloud-dependencies 版本spring-cloud 版本spring-boot 版本spring 版本2020.0.13.0.12.4.25.3.32020.0.03.0.02.4.15.3.2Hoxton.SR102.2.7.RELEASE2.3.8.RELEASE5.2.12.RELEASEHoxton.SR92.2.6.RELEASE2.3.2.RELEASE5.2.8.RELEASEHoxton.S...

2021-10-11 21:09:04 3259

原创 MyBatis-Plus 如何自动生成代码

简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。通过官方文档介绍我们可以使用 AutoGenerator 也就是 MyBatis-Plus 的代码生成器,使用 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。使用步骤添加依赖<dependency> <

2021-07-13 16:10:25 957

原创 Spring5 框架一篇就够(IOC容器、AOP面向切面编程、JDBCTemplate、Spring事务等)

目录文章目录目录前言下载Spring 依赖导入Spring相关jar包IOC 容器概念及原理IOC 简介IOC 容器Bean的操作Bean管理操作有两种方式xml配置文件中``标签介绍Spring DI 的实现方式:属性注入和构造注入Book类: (依赖注入)Spring 实例化:bean(service与dao为案例)Spring 实例化:嵌套bean与级联赋值创建对象(一对多为案例)Spring 实例化:集合数据注入Spring 实例化:提取List集合、Map对象的数据注入Spring 实例化:工厂

2021-06-01 10:57:10 370 4

原创 JDBC核心技术(获取数据库链接、数据库事务、数据库链接池)

文章目录前言数据的持久化Java数据存储技术JDBC介绍JDBC体系结构获取数据库链接Driver接口加载注册JDBC驱动获取数据库链接数据库链接方式(实例)方式一:代码中显示出现了第三方数据库API(不推荐)方式二:代码中不体现第三方数据库API(推荐)PreparedStatement实现CRUD操作两种技术PreparedStatement介绍使用Statement操作数据表的弊端(不推荐)PreparedStatement的使用PreparedStatement介绍PreparedStatement

2021-05-22 16:44:34 1739 10

原创 Git常用指令---持续更新

如何将本地项目上传到Git1、 进入项目文件夹通过命令 git init 把这个目录变成git可以管理的仓库。git init2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件。git add .git add . Text013、用命令 git commit告诉Git,把文件提交到仓库。引号内是为提交的文件说明git commit -m '这是一个文件夹'4、关联到远程库git remote add

2020-12-09 13:35:12 403

原创 Vue 如何使用WebSocket与服务器建立链接 持续保持通信

WebSocket浏览器通过JavaScript向服务器发出建立WebSocket链接的请求,链接建立后,客户端和服务器端就可以通过TCP链接直接交互数据。WebSocket链接后可以通过send()方法来向服务器发送数据,并通过onnessage事件来接受服务器返回的数据。创建WebSocket对象let ws = new WebSocket(server);WebSocket属性属性描述ws.readyStateWebSocket.CONNECTING: 0正在链接 W

2020-12-08 16:32:29 3322

原创 Swagger-ui 启动报错 Failed to start bean ‘documentationPluginsBootstrapper‘

Spring Boot 引入 Swagger-ui 版本冲突问题会报以上错误。完整的错误信息: `Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException`

2022-10-29 23:55:39 187 1

原创 IDEA Maven 下载源码报错 Cannot download sources Sources not found for: XXX

解决办法:在项目中打开控制台输入此指令:mvn dependency:resolve -Dclassifier=sources最后在自己下载好的 Maven 库中引入相关 jar 就好了。

2021-09-14 10:32:37 292 1

原创 五分钟带你一步一步去了解Spring Boot是如何实现自动配置

前言​ 在使用传统的 Spring 去做 Java EE 应用开发时,在项目中会出现大量的 XMl配置文件,使 Java EE 项目变得笨重且繁琐,从而导致开发和部署上的效率降低。​ Spring Boot 的出现就是简化 Spring 应用的搭建及开发过程。它使用特定的方式来进行配置,从而使开发人员不在需要样板化的配置,也就是说 Spring Boot 并不是什么新的框架。它只是在底层帮我们做好了 Spring 的配置,下面我来详细说明 Spring Boot 是如何自动装配的。自动配置源码分析1

2021-07-31 17:40:23 236 2

原创 SpringMVC框架介绍及原理

文章目录SpringMVC框架介绍Springmvc架构原理解析SpringMVC配置DispatcherServlet中央调度器@Controller注解@RequestMapping注解控制器方法请求参数获取逐个参数接收CharacterEncodingFilter解决中文乱码控制器方法返回值String 返回值(跳转页面)ModelAndView 返回值(域对象)void 返回值(Ajax响应)Object 返回值(注解Ajax响应)注解Ajax响应文本中央调度器 ``如何解决访问静态资源异常处理拦截

2021-06-28 11:34:23 185 2

原创 Vue 脚手架 console.log报错 Unexpected console statement (no-console)

解决方案:在 package.json 文件中添加以下配置"rules": { "no-console": "off", "no-restricted-syntax": ["error", { "selector": "CallExpression[callee.object.name='console'][callee.property.name!=/^(log|warn|error|info|trace)$/]", "message":

2021-06-25 11:02:37 194

原创 Vuex页面刷新数据丢失解决方案

前言在 Vue 项目中使用 Vuex 做集中数据储存管理应用的所有组件状态,并以相应的规则保证状态以一种可预测的方式发生变化。就像一个容器把所有组件的公共数据或状态放入这个容器中。页面刷新数据丢失解决方案在页面刷新时将 vuex 里的信息保存到 sessionStorage 里,可以通过 addEventListener 监听 beforeunload 事件把 vuex 保存到 sessionStorage 里,当页面加载时获取 sessionStorage 里的数据,通过 $store.replac

2021-06-10 11:11:38 252

原创 ApplicationContext.log 将servlet[XXX]标记为不可用 问题已解决!!!

期间我清楚Maven重新构建项目、手动在 lib 文件中添加 servlet-api 等相关jar包无果。最终我尝试着把Tomcat从 10.0.6 版本降低到 9.0.46 版本,更改环境变量重新运行,竟然好了!!!也许是 Tomcat 版本太高不兼容所导致的。...

2021-06-03 11:38:39 5070 4

原创 JavaWeb 文件上传与下载(一)

JavaWeb 文件上传与下载(一)文件的上传和下载,是非常常见的功能。很多的系统中,或者软件中都经常使用文件的上传和下载。比如:用户头像上传、 邮箱中附件的上传与下载以及OA 系统中审批有附件材料的上传。Http协议说明请求头部:Content-Type: multipart/form-data; boundary=----WebKitFormBoundary10MOHr9k7lABzMdBContent-Type:表示提交的数据类型。multipart/form-data;:表示提交的数

2021-04-25 23:50:04 185

原创 JAVA8新特性----函数式接口

函数式接口函数式接口是指一个接口中只声明一个抽象方法,则此接口就称为函数式接口,通过@FunctionalInterface注解来检验当前接口是否是一个函数式接口。java内置的4大核心函数式接口消费型接口 Consumer<T> void accept(T t)供给型接口 Supplier<T> T get()函数型接口 Function<T,R> R apply(T t)断定行接口 Predicate<T> boolean te

2021-03-31 23:30:41 69

原创 JAVA8型特性----Lambda表达式

Lambda表达式lambda表达式的使用格式:(o1,o2) -> Integer.compare(o1,o2);-> :Lambda操作符 或 箭头操作符。-> 左边:Lambda形参 (其实就是接口中的抽象方法的形参列表)。-> 右边:Lambda体 (其实就是接口中重写的抽象方法的方法体)。实例:@Testpublic void test2() { Comparator<Integer> comparator = new Comparator

2021-03-31 23:29:22 75

原创 成功解决Git:fatal: refusing to merge unrelated histories

Get 报错今天在使用Git提交上传出现了下面的这个错误。fatal: refusing to merge unrelated historiesGet 解决在执命令后面加上--allow-unrelated-histories如: git push origin master --allow-unrelated-histories

2021-01-31 10:22:46 126

原创 Vue对axios的封装 通俗易懂Ctrl+C,V即可使用

什么是axiosaxios 是一个基于 promise 的HTTP库。支持 promise API。具备请求和响应拦截,以及转换请求和响应数据。取消请求自动转换 JSON 数据从node.js 创建 http 请求安装axios使用npm:npm install axios --save使用yarnyarn add axios使用CDN<script src="https://unpkg.com/axios/dist/axios.min.js"></scr

2021-01-21 16:44:07 267

原创 JAVA_基础反射创建运行时类的对象

通过反射去创建对应的运行时类的对象newInstance():调用此方法,创建对应的运行时类的对象。内部调用的是空参的构造器。要想此方法正常的创建运行时类的对象,要求:1.运行时类必须提供空参构造器2.空参构造器的访问权限。通常设置为public在javabean中要求提供一个public的空参构造器。原因:1.便于通过反射,创建运行时类的对象2.便于子类继承此运行类时,默认调用super()时,保证父类有此构造器public void test1() throws IllegalAcces

2021-01-12 23:31:05 123

原创 JAVA_基础反射机制

Java反射机制概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期 借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内 部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射。正常方式: 引入需要的包名称 → 通过new实例化对象 → 取得实

2021-01-08 23:47:18 50

原创 JAVA_基础IO流随机存取文件流(四)

随机存取文件流RandomAccessFile 声明在java.io包下,但直接继承于java.lang.Object类。并 且它实现了DataInput、DataOutput这两个接口,也就意味着这个类可以作为输入流,也可以作为输出流。构造器:public RandomAccessFile(File file, String mode) 、public RandomAccessFile(String name, String mode)创建RandomAccessFile 类实例需要指定一个mode

2021-01-06 21:37:17 71

原创 JAVA_基础IO流对象流(三)

处理流:对象流ObjectInputStream和OjbectOutputSteam用于存储和读取基本数据类型数据或对象的处理流。可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。序列化:用ObjectOutputStream类保存基本类型数据或对象的机制。反序列化:用ObjectInputStream类读取基本类型数据或对象的机制对象序列化机制序列化:将内存中的Java对象转换成二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点(ObjectOutputS

2021-01-04 23:34:53 84

原创 JAVA_基础IO流原理及流的分类(二)

IO流的分类I/O是input/output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输。如:读写文件、网络通信等。在Java程序中,对于数据的输入/输出操作以:流(stream)的方式进行。流的分类按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)按数据流的流向不同分为:输入流,输出流按流的角色的不同分为:节点流,处理流(抽象基类)字节流字符流输入流inputStreamReader输出流OutputStream

2021-01-03 22:47:04 95

原创 JAVA_基础IO流(一)

IO流File类的使用java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关。File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File对象可以作为参数传递给流的构造器。如何创建File类的实例public File(String path

2021-01-03 22:43:03 68

原创 JAVA_基础泛型

泛型所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类 型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如, 继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实 际的类型参数,也称为类型实参)。从JDK1.5以后,Java引入了“参数化类型(Parameterized type)”的概念, 允许我们在创建集合时再指定集合元素的类型,正如:List,这表明 该List只能保存字符串类型的对象。JDK1.5改写了集合框架中的全部接口和类,为这些接

2021-01-03 22:38:11 65

原创 JAVA_基础集合Map接口(三)

Map接口一、Map实现类的结构。Map:双列数据,储存key-value对的数据。HashMap:作为Map的主要实现类;线程不安全的,效率高;能存储null的key和valueLinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。原因:在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。使用:对于频繁的遍历操作,此类执行效率高于HashMap。TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排

2021-01-03 22:35:45 100

原创 JAVA_基础集合List接口与Set接口(二)

List接口JDK API中List接口的实现类常用的有:ArrayList、LinkedList和Vector。ArrayList:作为List接口的主要实现类;线程不安全;底层使用Object[] elementData储存。LinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高;底层使用双向链表储存。Vector:作为List接口的古老实现类;线程安全的;效率底;底层使用Object[] elementData储存。ArrayList的源码分析:JDK 7Arr

2021-01-03 22:24:34 77

原创 JAVA_基础集合Collection接口与Iterator迭代器(一)

Java集合框架一、集合框架的概述集合、数组都是对多个数据进行存储操作的结构,简称:Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)。数组在存储多个数据方面的特点:一旦初始化后,其长度就确定了。需要指定元素的类型。比如:String[] arr; int[] arr1; Object[] arr2。数组在存储多个数据方面的缺点:一旦初始化,其长度就不能修改。数组中提供的方法非常有限,对于添加、删除、插入数据

2021-01-03 14:10:18 105

原创 JAVA_基础注解的概念

什么是注解Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加 载, 运行时被读取, 并执行相应的处理。通过使用 Annotation, 程序员 可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息。代 码分析工具、开发工具和部署工具可以通过这些补充信息进行验证 或者进行部署。Annotation 可以像修饰符一样被使用, 可用于修饰包,类, 构造器, 方 法, 成员变量, 参数, 局部变量的声明, 这些信息被保存在 Annotation 的 name=value 对中。

2020-12-31 18:05:27 67

原创 JAVA_基础枚举类

枚举类的理解1)类的对象只有有限个,确定的。2)当需要定义一组常量时,强烈建议使用枚举类。3)如果枚举类中只有一个对象,则可以作为单例模式的实现方式。如何定义枚举类方式一:JDK5.0之前,自定义枚举类。public class SeasonTest { public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring);

2020-12-31 17:57:46 73

原创 JAVA_基础多线程的生命周期、线程安全、线程锁、线程通信与创建线程(二)

线程的同步同步代码块实现:继承Thread线程安全问题① 操作共享数据的代码,即为需要被同步的代码。(不能包含代码多了,也不能包含代码少了)② 共享数据:多个线程共同操作的变量。比如:ticket就是共享数据。③ 同步监视器,俗称:锁。任何一个类的对象,都可以充当锁。要求:多个线程必须要共用同一把锁。补充:在实现Runnable接口创建多线程的方式中,我们可以考虑使用this充当同步监视器。class RWindow2 extends Thread { public static in

2020-12-31 17:48:04 64

原创 JAVA_基础多线程(一)

多线程多线程的创建方式一一、创建一个继承于Thread类的子类二、重写Thread类的run()将此线程执行的操作声明在run()中三、创建Thread类的子类的对象4. 通过此对象调用start()启动当前线程调用当前线程的run()问题一:我们不能直接调用run()的方式启动线程。(直接调用,则是在mian()主线程运行的)public class ThreadDemo { public static void main(String[] args) { /

2020-12-31 17:26:53 59

原创 JAVA_基础异常概述与异常体系的结构

异常概述与异常体系的结构Error:java虚拟机无法解决的严重问题。JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError,一般不编写针对性的代码进行处理。Exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。比如:空指针访问、试图读取不存在的文件、网络链接中断、数组角标越界。异常体系结构java.lang.Throwable:|-------java.lang.Error:一般不编写针对性的代码进行处理。java.

2020-12-31 15:16:44 85

原创 JAVA_基础内部类

内部类java允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类内部类的分类:成员内部类(静态内、非静态内) VS 局部内部类(方法内、代码块内、构造器内)外部类的成员:1)调用外部类的机构。2)可以用被static修饰。3)可以被四种不同的权限修饰。作为一个类:1)类内可以定义属性、方法、构造器等。2)可以被final修饰,表示此类不能被继承。言外之意,不使用final就可以被继承。3)可以被abstract修饰,表示此类不能被实例化。与上面同理,不使用abstract

2020-12-31 14:57:15 44

原创 JAVA_基础面向对象:接口

接口(interface)接口的使用:1)接口使用interface来定义。2)在java中,接口和类是并列的两个结构。3)如何定义接口:定义接口中的成员。JDK7及以前:只能定义全局常量和抽象方法。全局常量:public static final(可省略)抽象方法:public abstract (可省略)JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法。接口中定义的静态方法,只能通过接口来调用。通过实现类的对象,可以调用接口中的默认方法。如果实现类重写了

2020-12-31 14:56:16 63

原创 JAVA_基础面向对象:抽象类与抽象方法

抽象类与抽象方法(abstract)abstract可以用来修饰的结构:类、方法。abstract修饰类(抽象类):1)此类不能在实例化。2)在抽象类中是一定有构造器的,便于子类实例化时调用(涉及子类实例化全过程)。3)开发中,都会提供抽象类的子类,让子类对象实例化,完成相关操作。abstract修饰方法(抽象方法):1)抽象方法只有方法的声明,没有方法体。2)包含抽象方法的类,一定是抽象类。(而抽象类里不一定有抽象方法)3)若子类重写了父类中的所有的抽象方法后,此子类方可实例化,若子类没

2020-12-31 14:45:35 48

原创 JAVA_final关键字

final关键字final可以修饰类、方法、变量。1)final用来修饰一个类:此类不能被其它类所继承。比如:String类、System类、StringBuffer类。​ 2)final用来修饰一个方法:表示此方法不能重写。​ 比如:Object类中getClass();​ 3)final用来修饰变量:此时的”变量“就称为是一个常量。​ final修饰属性值的位置有:显示初始化、代码块中初始化、构造器中初始化。​ final修饰局部变量:final修饰形参时,表明此形参是

2020-12-31 14:44:03 37

原创 JAVA_代码块

代码块1)代码块的作用:用来初始化类、对象2)代码块如果有修饰的话,只能使用static静态代码块 : * 内部可以输出语句 * 随着类的加载而执行 * 初始化类的信息 * 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行 * 静态代码块要比非静态代码块优先级要高 * 静态代码块只能调用静态的属性与方法,不能调用非静态的结构非静态代码块: * 内部可以输出语句 * 随着对象的创建而加载 * 每创建一个对象,就执行一次非静态代码块 * 可以在创建

2020-12-31 14:40:52 71

空空如也

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

TA关注的人

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