自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

soberw的日常分享博客

一起学习一起进步

  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

原创 idea中如何实现SpringBoot项目的自定义配置文件点击属性跳转到配置类

在idea中,对于官方默认的配置文件 通过点击配置文件中的属性,可以自动跳转到属性对应的配置文件类中,实现快速查看属性的描述信息:但是对于自定义的配置文件,却无法实现,这在一定程度上并不友好。原因是idea没有将我们自己配置的文件识别为SpringBoot的配置文件:如何解决?实际上,也是有方法可以解决的:首先需要引入依赖:在idea的模块面板配置:将我们自己的配置文件添加进去配置完成后,重启服务器,则可以实现点击跳转。...

2022-06-24 19:47:23 5573

原创 It was either not specified and/or could not be found for the javaType (java.util.List) : jdbcType

在使用MyBatis-Plus的时候,他会将实体类以及表字段自动关联起来,但是当我们想要指定额外的一对多关系的时候,例如:订单保存的时候同时需要保存订单详情列表,此时订单与订单详情列表就是 一对多 的关系,因此在定义订单实体类的时候,我们还需要额外的定义一个订单详情列表集合属性,但是此时在保存订单的时候就会报错:根本原因就是:实现方式很简单:==在将要忽略的属性上面添加 @TableField(exist = false)==注解即可:...

2022-06-23 20:59:48 15348 2

原创 RabbitMQ高级特性笔记总结

前文介绍了RabbitMQ的几种 工作模式 以及 在SpringBoot中的使用 。下面通过在SpringBoot项目中演示RabbitMQ的一些高级特性。在开始之前,先搭建一个SpringBoot项目 ,在项目中演示:配置文件如下所示:消息的可靠传递在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景,即希望信息可靠的传递。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退回模式rabbitmq 整个消息投递的

2022-06-06 17:39:15 1712

原创 实战:SpringBoot整合RabbitMQ

RabbitMQ六种工作模式上文介绍了RabbitMQ的六种工作模式,下面简单使用SpringBoot整合一下RabbitMQ,看看SpringBoot对RabbitMQ的封装是怎样的?RabbitTemplate:消息模板。如同JdbcTemplate或者RedisTemplate一样,这是spring整合rabbit提供的消息模板。是进行发送消息的关键类。功能:该类提供了丰富的发送方法,包括可靠性投递消息方法、回调监听消息接口ConfirmCallback、返回值确认接口ReturnCallBack等等

2022-06-02 16:48:31 1797

原创 RabbitMQ六种工作模式详解

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/RabbitMQ提供了6种模式:官网对应模式介绍:https://www.rabbitmq.com/getstarted.htmlAMQP 一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消

2022-06-01 15:53:53 3684 2

原创 Redis应用场景举例

Redis应用场景举例缓存缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。作为Key-Value形态的内存数据库,Redis 最先会被想到的应用场景便是作为数据缓存。而使用 Redis 缓存数据非常简单,只需要通过string类型将序列化后的对象存起来即可,不过也有一些需要注意的地方:必须保证不同对象的 key 不会重复,并且使 key 尽量短,一般使用类名(表名)加主键拼接而成。选择一个优秀的序列化方式也很重要,目的是提高序列

2022-05-31 14:39:16 824

原创 SpringBoot整合Redis

SpringBoot整合Redis在SpringBoot中,提供了对Redis的支持:我们可以使用SpringBoot提供的RedisTemplate对象,操作Redis数据库。RedisTemplate与StringRedisTemplate在Redis里面,为了确保数据的安全性以及放便快速存储,任何类型的数据,在Redis内部都是采用二进制的方式存储的,这就导致,当我们存入一个字符串时,可能最终取出的结果会乱掉:我们在存取的时候,这样的效果显然是不想看到的,如何解决?SpringBoot

2022-05-28 16:30:13 634

原创 Linux下VI/VIM编辑器使用

VI/VIM编辑器vim是什么vim是从 vi 发展出来的一个文本编辑器http://www.vim.orgvi是Unix和类Unix操作系统中出现的通用的文本编辑器vim是从vi发展出来的一个性能更强大的文本编辑器,可以主动的以字体颜色辨别语法的正确性,方便程序设计,vim和vi编辑器完全兼容使用:vi xxx文件 或者vim xxx文件,简单来说,就是用来编辑文件的一个工具,类似于我们再Windows上的一些文本编辑工具,只不过,这里是命令行形式的,不是图形用户界面形式的.接下来我们就准备一个

2022-05-26 12:42:01 687

原创 SpringBoot基础入门篇

简而言之,SpringBoot 就是为了简化 Spring 应用的搭建和开发过程。SpringBoot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来微 服务技术的流行,Spring Boot 也成为了时下炙手可热的技术

2022-04-29 12:12:03 2499

原创 SpringBoot配置之YAML文件详解

SpringBoot配置之YAML文件详解介绍YAML是"YAML Ain’t Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。因为比xml,语法更加简洁,更轻量级,比.properties文件更具有层次,非常适合用来作为数据中心的配置文件。例如SpringBoot的配置文件就支持YAML格式的。这里就以在SpringBoot配置为例,详细介绍YAML

2022-04-28 17:50:56 4711

原创 Mybatis自定义插件的理解与使用情景的举例

基于mybatis框架强大的特性,mybatis允许我们在映射语句的执行过程中对某些方法的调用进行拦截加工,又因为其不是必须的,只根据需要创建,因此称之为自定义插件,实际上就是一个拦截器插件。

2022-04-18 20:47:08 987

原创 SpringMVC框架笔记总结(史上最全)

SpringMVC从入门到精通文章目录SpringMVC从入门到精通概念引入入门案例开发环境创建项目进行配置测试运行优化配置@RequestMapping 注解问题引入@RequestMapping注解的位置@RequestMapping注解的属性value属性method属性params属性(了解)headers属性(了解)value属性的模糊匹配获取请求参数通过原生ServletAPI获取请求参数通过控制器方法的形参获取请求参数@RequestParam注解处理参数映射请求参数是JavaBean对象请

2022-03-12 17:10:19 2611 3

原创 SpringMVC过滤器HiddenHttpMethodFilter内部执行流程

SpringMVC过滤器HiddenHttpMethodFilter内部执行流程@TOC基于RESTful风格,我们主要将请求方式分为了四种方式,具体说,就是 HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET 用来获取资源POST 用来新建资源PUT 用来更新资源DELETE 用来删除资源大家都知道,form表单的提交方式只有两种:get和post。而我们现在需要发送四种请求,前两种还好说,因为本来就支

2022-03-07 17:32:38 551

原创 MySQL之流程控制与游标

MySQL之流程控制与游标文章目录MySQL之流程控制与游标前言概念引入分支结构IF语句CASE语句循环结构LOOP语句WHILE语句REPEAT语句跳转语句LEAVE语句ITERATE语句游标前言本文是在看了康师傅的b站的尚硅谷视频总结出来的笔记以及见解点击跳转概念引入学习或者了解过编程语言的都知道,任何一门编程语言都不可能只通过一两句语句代码完成。流程控制语句的作用就是在程序运行过程中控制语句的执行顺序,是我们完成复杂操作必不可少的一部分。只要是执行的程序,流程就分为三大类:顺序结

2022-02-20 18:09:00 864

原创 Spring5从入门到精通(史上最全版)

1、Spring是轻量级的开源的 JavaEE 框架2、Spring 可以解决企业应用开发的复杂性3、Spring有两个核心部分:IOC和Aop(1)IOC:控制反转,把创建对象过程交给 Spring进行管理(2)Aop:面向切面,不修改源代码进行功能增强4、Spring特点(1)方便解耦,简化开发(2)Aop编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事务操作(6)降低 API 开发难度

2022-02-16 19:45:52 3193

原创 MySQL之变量、存储过程以及函数精讲篇

MySQL之变量、存储过程以及函数精讲篇文章目录MySQL之变量、存储过程以及函数精讲篇0.前言1.变量1.1 系统变量1.1.1 查看所有系统变量1.1.2 查看指定系统变量(`@@`)1.1.3 修改系统变量的值1.2 用户自定义变量1.2.1 会话用户变量1.2.2 局部变量1.2.3 对比2.存储过程2.1 存储过程概述2.1.1 优缺点阿里开发规范2.1.2 分类2.2 创建和调用存储过程2.2.1 语法分析2.2.2 调用格式2.2.3 代码示例3.存储函数3.1 创建语法3.2 调用语法3.

2022-02-15 20:21:51 1029 1

原创 浅谈java代理模式

讲解java代理模式文章目录讲解java代理模式何谓代理模式静态代理动态代理JDK动态代理CGLIB动态代理何谓代理模式代理模式,即Proxy Pattern,23种java常用设计模式之一。代理模式提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作

2022-02-13 20:36:28 575 1

原创 剑指Offer系列_30_包含min函数的栈

以空间换时间:package leetcode.sword_to_offfer.day01;import java.util.Stack;/** * 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 * <p> * 示例: * <p> * MinStack minStack = new MinStack(); * minStack.push(-2); * min

2022-02-07 10:47:49 332 1

原创 剑指Offer系列_09_用两个栈实现队列

package leetcode.sword_to_offfer.day01;import java.util.LinkedList;/** * 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , * 分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 ) * <p> * 示例 1: * <p> * 输入: * ["CQueue","appendT

2022-02-07 09:03:21 112

原创 MySQL之视图篇

MySQL之视图篇文章目录MySQL之视图篇1. 概述1.1 为什么使用视图?1.2 视图的理解2. 创建视图2.1 创建单表视图2.2 针对于多表2.3 基于视图创建视图3. 查看视图4. 更新视图4.1 一般情况4.2 不可更新的视图5. 修改视图6. 删除视图7. 总结7.1 视图优点7.2 视图不足7.2 视图不足1. 概述1.1 为什么使用视图?视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分

2022-02-04 22:36:34 132 1

原创 LeetCode随缘刷题之盛最多水的容器

package leetcode.day_01_30;/** * 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 * * 说明:你不能倾斜容器。 * * 示例 1: * * 输入:[1,8,6,2,5,4,8,3,7] * 输出:49 * 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,

2022-01-30 21:58:02 190

原创 LeetCode随缘刷题之回文数

package leetcode.day_01_30;/** * 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 * <p> * 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。 * <p> * <p> * 示例 1: * <p> * 输入:x = 121 * 输出:true * 示例2: * <p> * 输入:x = -1

2022-01-30 20:04:49 5634

原创 LeetCode随缘刷题之字符串转换整数

package leetcode.day_01_29;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 * <p> * 函数myAtoi(string s) 的算法如下: * <p> * 读入字符串并丢弃无用的前导空格 * 检查下一个字符

2022-01-30 00:02:13 120

原创 LeetCode随缘刷题之整数反转

package leetcode.day_01_29;/** * 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 * 如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。 * 假设环境不允许存储 64 位整数(有符号或无符号)。 * <p> * 示例 1: * 输入:x = 123 * 输出:321 * <p> * 示例 2: * 输入:x = -123 * 输出:-321 * <p

2022-01-29 22:48:57 5690 1

原创 MySQL语法命令之约束篇

文章目录1.约束概述1.1约束的分类1.2添加约束2.查看表中的约束3. `not null` 非空约束3.1 在 `create table` 时创建3.2 在`alter table` 时添加约束3.3 在`alter table`时删除约束4. `unique` 唯一性约束4.1 在`create table` 时添加约束4.2 在`alter table` 时添加约束4.3 复合的唯一性约束4.4 删除约束5. `primary key `主键约束5.1 在`create table` 时添加约束5

2022-01-19 09:20:50 1282

原创 idea运行Tomcat的servlet程序时报500错误解决方法

今天在测试使用Tomcat运行servlet小程序时,在传递参数时,出现了如上错误。开始我以为是配置出了问题,就把项目删除了又建立了一遍,结果亦然。经过仔细排查,发现问题,先说明问题原因:idea上配置jdk版本与环境变量运行的jdk版本不一致。查看运行程序时控制台信息如下:可是我整个项目是基于jdk1.8建立的那么这个jdk17是怎么回事,打开Tomcat存放的根目录下,进入bin目录键入cmd打开命令界面...

2022-01-10 21:29:16 5720 1

原创 MySQL基本命令语法之select

目录MySQL基本命令语法之select查询去重以及常数空值与着重号着重号空值运算符算术运算符比较运算符符号型非符号型逻辑运算符优先级排序分页排序分页拓展多表查询等值连接 vs 非等值连接自连接 vs 非自连接内连接 vs 外连接MySQL支持的连接语法(SQL99)`UNION[ALL]`的使用内连接(INNER JOIN)外连接(OUTER JOIN)左外连接(LEFT OUTER JOIN)右外连接(RIGHT OUTER JOIN)满外连接(FULL OUTER JOIN)7种`JOIN`以及实现方

2022-01-09 21:21:22 2456

原创 git常用命令大全

git init 初始化一个仓库 ,会将该目录下所有文件交给git管理git status 查看当前版本管理状态git add 文件1 文件2… 把有变化的文件(新增的、修改的、删除的) 添加到git暂存区里git add . 将所有改变的文件统一 加入到暂存区里git rm --cached 文件1 文件2 把暂存区中的文件从暂存区移除git commit -m ‘提交描述’git restore 文件1 文件 2 … ..

2022-01-03 14:09:29 343 1

原创 Typora如何上传图片到gitee

Typora是一款非常好用的Markdown文本编辑器,深受广大程序员的青睐,那么在使用过程中,当我们插入图片的时候,其实是默认放在一个相对路径文件夹下的,这就导致,一旦我们移动文件,或者发送给别人,图片就失效了。如何解决呢?Typora给我们提供了图片上传服务,就是我们可以将图片上传在网上,这样就方便许多,不管再换地方挪位置,始终都正常显示。那么上传到什么地方呢,我个人还是喜欢上传到gitee码云平台,操作起来也比较简单。在gitee上新建仓库没有账号的一定要先注册一下,这里不再演示:名称随便

2022-01-01 10:55:10 1874 2

原创 简单模拟Java中反射的应用场景

有人说Java是一门静态语言。那么何为静态语言,动态语言又是什么?1、动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以 被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运 行时代码可以根据某些条件改变自身结构。 主要动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。2、静态语言与动态语言相对应的,运行时结构不可变的语言就是静态语言。如C、 C++。Java不是动态语言,但也不能简单的说成静态语言。Java可

2021-12-31 13:09:18 932

原创 浅谈Java之反射

反射四种获取Class实例的方法定义测试结构获取属性结构获取方法结构获取构造器结构(包括父类泛型)获取实现的接口获取所在包获取注解获取并创建指定构造器获取指定属性获取并运行指定方法四种获取Class实例的方法调用运行时类的属性通过运行时类的对象,调用getClass()调用Class静态方法:forName(String classPath) 开发中最常用使用类的加载器:ClassLoader (了解就行)package day_12_29;import org.junit.Te

2021-12-30 20:50:35 612 1

原创 Java多线程经典案例分享

汇总案例一案例二案例三案例四案例五案例六案例七案例一实现一个容器,提供两个方法,add(),count() 写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束。本案例我通过闭锁(也叫门栓锁)实现,实现如下:package day_12_28.zuoye;import java.util.ArrayList;import java.util.List;import java.util.concurrent.CountDownLatch;

2021-12-28 21:28:57 3481 1

原创 Java多线程之读写锁机制

Java多线程中有很多的锁机制,他们都有各自的应用场景,例如今天我说的这种锁机制:读写锁读写锁,见名知意,主要可以进行两种操作,读和写操作,他们之间结合使用起来又是各不相同的。比如多个线程之间可以同时读,但不可以同时写,也不可以一边读一边写,有点类似于数据库中的共享锁以及排它锁,下面我具体事例演示:需要注意的是,不管是进行读操作还是写操作,一定要成对去调用方法,就是开启锁后一定要关闭,且为了保险起见,关闭最好要写在finally语句块中去。另外,我们在声明对象时,有两种方式(有参数和无参数),若为t

2021-12-27 20:17:35 412

原创 基于Java的简单银行管理系统(MVC设计模式)

2021-12-25 11:37:24 1648 6

原创 用Java实现生成图片验证码

通过代码实现生成一个随机验证码图片,且生成后自动打开:package day_12_17;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.util.Random;/** * @author sobe

2021-12-17 21:14:28 1603 1

原创 用Java模拟实现对系统文件以目录的拷贝功能

要用Java对单个文件拷贝的话,其实思路很简单,循环读取被拷贝文件,放入byte数组,然后写入目标文件。当然我们也可以借助现有的类去完成,如InputStream中的transferTo()方法就可以实现,其实我们查看源码就能看出来,其实官方的做法也是这样,只不过更严谨一些:那么我想拷贝多个文件呢?他们显示在不同的目录中,而且目标目录中还不一定存在,比如说,现在我想把jdk8.0的官方源码src文件复制一份到D盘,现在这个文件在桌面,里面文件结构相当复杂了那这如何做呢?我们当然可以借助组件,一些组

2021-12-16 09:52:51 491

原创 Java中File类的方法详解

File类也是Java中一个比较重要的类,通过他我们可以实现对文件的一系列操作,其内置了很多方法,下面我将按方法的功能分块,逐一讲解:快速导航构造方法常用方法创建目录构造方法常用方法官方API如下(基于Java 11):创建目录...

2021-12-14 19:26:50 907

原创 用Java中的File类模拟实现对系统文件的增删改查效果

码字不易,三连支持一波吧 ????IO操作向来是各大语言的热区,而对文件的操作也是重中之重。那么在Java中也给我们提供了很多关于文件操作的类。今天我就用一个比较基本的File类来模拟实现对文件的增删改查效果。这里先解释一下,何谓增删改查:增:创建一个文件(可以是目录,可以是文件)删:删除指定文件或文件夹(非空)改:对文件重命名,这里我加以拓展,也可以实现对文件的移动查:遍历并统计指定目录下(包含其子目录)指定类型文件的个数,如某目录中共包含.java文件23个,以及修改日期,几行代码文字;

2021-12-13 21:00:35 802

原创 LeetCode随缘刷题之转化成小写字母

这道题应该是最简单的一道题了把,简直在侮辱我。package leetcode.day_12_12;/** * 709. 转换成小写字母 * 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 * <p> * 示例 1: * <p> * 输入:s = "Hello" * 输出:"hello" * 示例 2: * <p> * 输入:s = "here" * 输出:"here" * 示例 3: * <p&g

2021-12-12 14:51:52 3798

原创 Java中Arrays数组工具类的使用全解

本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助。

2021-12-11 14:24:12 4866 5

spring5框架笔记源码

spring5框架笔记源码

2022-02-16

控制台简易版银行管理系统(MVC设计模式)

控制台简易版银行管理系统(MVC设计模式)

2021-12-25

空空如也

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

TA关注的人

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