- 博客(87)
- 资源 (2)
- 收藏
- 关注

原创 Java NIO学习笔记(全面详解)
NIO 中的 N 可以理解为 Non-blocking,不单纯是 New,是解决高并发、I/O高性能的有效方式。Java NIO是Java1.4之后推出来的一套IO接口,NIO提供了一种完全不同的操作方式, NIO支持面向缓冲区的、基于通道的IO操作。新增了许多用于处理输入输出的类,这些类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写,新增了满足NIO的功能。
2023-03-07 08:21:00
1262
原创 windows11 DNS手动配置过DNS,在恢复成自动获取后,无法自动获取到DNS,网卡里面DNS还是显示之前手动配置的DNS
大致原因是:在设置里成功连接上手动dns的wifi,会备份dns设置,并将其dns写入注册表,当其他WiFi连接没有配置dns(即自动DHCP)时,却不会覆盖注册表,反而优先引用了注册表的dns,故此冲突了。windows11 DNS一开始手动配置过DNS,然后在恢复成自动获取后,网卡无法自动获取到DNS,并且网卡里面DNS显示还是之前手动配置的DNS。系统版本:windows11 企业版、版:10.0.22621 版本 22621。
2024-08-06 10:29:28
4061
4
原创 MySQL客户端和服务器进程通信的几种方式
真实环境中,数据库服务器进程和客户端进程可能运行在不同的主机中,它们之间必须通过网络来进行通讯。MySQL采用TCP作为服务器和客户端之间的网络通信协议。在网络环境下,每台计算机都有一个唯一的IP地址,如果某个进程有需要采用TCP协议进行网络通信方面的需求,可以向操作系统申请一个端口号,这是一个整数值,它的取值范围是0~65535。这样在网络中的其他进程就可以通过IP地址 + 端口号的方式来与这个进程连接,这样进程之间就可以通过网络进行通信了。
2024-03-05 14:18:58
1352
转载 一文学习Thrift RPC
1. thrift-client 代表的是服务的调用者2. thrift-server 代表的是服务的提供者3. thrift-common RPC编程共有的内容 1,实体类型 2,服务接口。
2024-01-25 18:09:41
2637
原创 自定义注解实现AOP
从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。/*** @return 操作类型}/*** 定义切点} /*** 切点后置通知* @param joinPoint 切点* @param result 返回结果。
2022-09-28 11:12:53
3865
原创 idea 无法识别SpringBoot配置文件,没有提示
打开项目配置:Project Settings -> Modules -> 点击小绿叶
2022-07-06 11:53:58
1975
转载 vue组件间通信六种方式
组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。一般来说,组件可以有以下几种关系:
2022-06-12 15:58:09
1154
转载 vuex使用教程--入门篇
按照官网的说法,Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
2022-06-10 17:32:16
2993
原创 An attempt was made to call a method that does not exist. The attempt was ma
SpringBoot整合MyBatis出错。原因:我同时引入了这两个依赖。<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.2</version></dependency> <dependency>
2022-04-20 11:31:35
7520
1
原创 Redis实现单设备登录
在有些场景下,我们希望用户一个账号只能登录一个设备。这个时候我们可以用Redis来实现。原理: 用户首次登录时,将用户信息存入Redis,key是用户id,value是token。当用户在其他设备登录时,会重新生成token,这个时候原先的token已经被覆盖了。所以用户在访问需要登录账号的操作时,系统会拦截请求判断token是否存在。当然是不存在的,所以我们就实现了单个设备登录的需求。这里只提供大概的样例。用户登录@PostMapping("login")@ApiOperation(val
2022-04-18 18:36:10
1979
1
原创 SpringBoot全局异常处理及前端请求参数校验
SpringBoot全局异常捕获处理及参数校验为什么要用全局异常处理?在日常开发中,为了不抛出异常堆栈信息给前端页面,每次编写Controller层代码都要尽可能的catch住所有service层、dao层等异常,代码耦合性较高,参数校验逻辑业务逻辑还长,不利于后期维护。为解决该问题,可以将Controller层异常信息统一封装处理,且能区分对待Controller层方法返回给前端。如何进行全局异常捕获和处理?一共有两种方法:Spring的AOP@ControllerAdvice结合@Exc
2022-04-15 21:59:11
2249
1
原创 Java生成验证码工具类,并响应给浏览器
生成验证码工具类import java.awt.*;import java.awt.image.BufferedImage;import java.util.Random;/** * @description: 绘制验证码图片 */public class CreateVerifiCodeImage { private static int WIDTH = 90; private static int HEIGHT = 35; private static int
2022-04-14 18:40:32
1195
原创 Springboot中使用swagger2
添加pom坐标<!--swagger--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version></dependency><!--swagger ui--><dependency&
2022-04-14 18:15:47
1225
原创 Springboot解决跨域问题的三种方式以及引入SpringSecurity跨域解决方案失效的情况
参考:什么是跨域?跨域解决方法为什么会出现跨域出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)什么是跨域当一个请求
2022-04-11 16:51:01
8933
7
原创 RabbitMQ连接超时Timed out
RabbitMQ连接超时Exception in thread “main” java.net.ConnectException: Connection timed out: connect在本地连接云服务器的RabbitMQ时,需要开启5672端口。5672:client端通信端口15672:管理界面ui端口云服务器放行端口在服务器中开启端口# 开启5672端口firewall-cmd --add-port=5672/tcp --permanent # 更新防火墙规则firewa
2022-04-05 11:25:02
6164
原创 使用Session+Cookie实现7天免登录
session存在于服务器端,cookie存在于浏览器端。如果我们在服务器端使用Session保存用户信息,那么在用户登录某个页面时,访问服务器的时候,就会生成一个cookie返回到浏览器端,如果没有设置cookie的过期时间,浏览器关闭的时候cookie失效。关闭浏览器重新打开这个网站,就要重新登录,这是用户不愿意看到的。在浏览器没有关闭的情况下,用户访问服务器,是不需要频繁登录的。服务器是通过浏览器携带的cookie找到对应的session对象。具体就是根据cookie的JSESSIONID对.
2022-03-16 22:05:06
3420
原创 Linux安装MySQL8.x详细步骤
一、获取mysql可以官网下载或者使用wget指令下载1.下载mysqlwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz2.解压 mysqltar xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz3.重命名mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.04.移
2022-02-15 14:19:42
8660
11
原创 Spring复杂对象创建的三种方式
在Spring中,对于简单类型的创建,我们可以使用set注入和构造注入。但是对于复杂类型的如何创建?什么是复杂类型,比如连接数据库的Connection对象,以及Mybatis中的SqlSessionFactory对象。在以前我们是通过这种方式获取Connection对象的:Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = D.
2022-01-09 17:15:22
1029
转载 Linux防火墙Centos8
#进程与状态相关systemctl start firewalld.service #启动防火墙systemctl stop firewalld.service #停止防火墙systemctl status firewalld #查看防火墙状态systemctl enable firewalld #设置防火墙随系统启动systemctl disable firewalld
2021-12-31 11:48:31
560
原创 Python爬取照片
具体分析可以查看我的这篇文章import urllib.requestfrom bs4 import BeautifulSoupimport reimport requests# 影片图片的链接findImgSrc=re.compile(r'<img alt=".*?".src="(.*?)"/>',re.S) # re.S忽略换行符def getData(baseurl): html=askURL(baseurl) #一个页面的html # 解析
2021-12-29 22:17:13
992
原创 Spring及Springboot中使用拦截器
开发流程Maven依赖servlet-api<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope></dependency>实现HandlerI.
2021-11-17 16:18:36
891
原创 SpringBoot无法连接https://start.spring.io
IDEA创建SpringBoot无法连接https://start.spring.io,可以使用这个https://start.springboot.io/或者阿里云的:https://start.aliyun.com
2021-11-16 14:41:40
1968
1
原创 Springboot中快速使用MybatisPlus以及具体细节
快速使用1.新建springboot项目2.加入mybatis-plus依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.4</version></dependency> <dependency> &
2021-11-14 22:51:21
1960
原创 通用后端响应返回结果对象
import exception.ImoocMallExceptionEnum;/** * 描述: 通用返回对象 */public class ApiRestResponse<T> { private Integer status; private String msg; private T data; private static final int OK_CODE = 10000; private static final
2021-11-13 10:58:39
1083
2
原创 SpringMVC中文乱码问题解决方案
请求中文乱码浏览器向服务器请求Get请求乱码修改Tomcat 文件夹conf 中server.xml配置文件在这个标签中添加URIEncoding="UTF-8" 属性 ,网址请求中乱码<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />注意:在Tom
2021-11-04 18:47:40
2322
原创 Spring常用注解以及如何实现纯注解
@Around(value="execution(* login(..))")环绕通知,value里面是切入点表达式 @Component("id") 替换原有的<bean>标签 衍生注解 @Component@Service 用于Service层@Repository 用于Dao层@Controller 用户控制层更加准确的表达一个类型的作用 @Scope 控制对象创建次数作用:控制简单对象创建次数注意:不添加@Scope Spring提供默认值 single
2021-10-30 10:04:49
772
原创 基于java8函数式接口Function实现MyBatisUtils
import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.Reader;import jav
2021-10-29 16:52:57
682
原创 力扣653. 两数之和 IV - 输入 BST
给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true前面也碰到了两数之和的题目,不过题目给的是数组,而本题目给的是二叉搜索树。虽然数据结构不一样,但是求解的思路还是类似的。借用官方的话来说就是:如果存在两个元素之和为k,即 x+y=k,并且已知x是树上一个节点的值,则只需判断树上是否存在一个值为y 的节点,使得y=k−x。基于这种思想,在树的每个节点上遍历它的两棵子树(左子树和右子树),寻找另外一个匹配的数。在遍历过程中,将每
2021-09-14 16:01:19
580
原创 使用xshell连接linux虚拟机
在linux中查看IP地址使用命令ifconfig在本机上使用ping命令查看两个系统是否连接,这种情况说明连接成功使用xshell连接两个系统,新建会话,只修改这两个,其他不用动
2021-08-29 21:28:34
608
原创 CentOS7安装VMware Tools详细步骤
1.进入centos2.点击vm的重新安装vm tools有些小伙伴安装VMware Tools显示灰色,可以看一下这个博客。进入系统之后会发现,多了一个光驱,里面有vm tools3.复制这个工具点击其他位置->计算机->opt粘贴到这里4.点击右键,打开终端,进入到这个文件夹这个窗口相当于windows 的dos窗口,我们在这里使用命令安装vm tools软件5.使用命令解压tar -zxvf VMwareTools-10.3.23-17030940.tar
2021-08-29 17:05:37
18970
18
原创 Lambda和Stream练习
- 一个 Lambda 表达式可以有零个或多个参数 参数的类型既可以明确声明,也可以根据上下文来推断。- 所有参数需包含在圆括号内,参数之间用逗号相隔。 空圆括号代表参数集为空。 当只有一个参数,且其类型可推导时,圆括号()可省略。- Lambda 表达式的主体可包含零条或多条语句 如果 Lambda表达式的主体只有一条语句,花括号{}可省略。 - 匿名函数的返回类型与该主体表达式一致 如果 Lambda表达式的主体包含一条以上语句,则表达式必须包含在花括号{}中(形成代码块)。匿名函数.
2021-08-27 09:08:22
693
原创 Git常用命令
Git常用命令git config --global user.name 用户名设置用户签名git config --global user.email email地址设置用户email地址git add 文件名添加到暂存区git reflog查看版本号git status查看状态git log详细日志地址git commit -m “说明信息” 文件提交git reset --hard 版本号回滚/不同版本穿梭关于分支
2021-08-15 11:50:22
513
转载 编译时异常与运行时异常的区别
编译时异常与运行时异常的区别Java异常类层次结构图运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是***不检查异常***,程序中可以选择捕获处理,也可以不处理。这些异常一般是***由程序逻辑错误引起***的,程序应该从逻辑角度尽可能避免这类异常的发生。运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用tr
2021-08-07 14:39:47
776
转载 数据库事务的四大特性以及事务的隔离级别
数据库事务的四大特性以及事务的隔离级别本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一
2021-08-07 14:28:55
533
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人