- 博客(65)
- 问答 (1)
- 收藏
- 关注
原创 2021宝藏面试题-Java后端
2021的Java后端面试题,能够应付绝大多数面试题目,其中有些答案是网上查询整理的,如有雷同,请联系我,谢谢。非商业用途
2021-12-16 21:45:16
3420
2
原创 RestClient对响应结果的常见处理
Elastic Search提供的Java语言客户端RestClient基本语法全文检索Boolean分页和排序高亮RestClient常见的几种命令package cn.itcast.hotel;import cn.itcast.hotel.pojo.HotelDoc;import com.alibaba.fastjson.JSON;import org.apache.http.HttpHost;import org.apache.lucene.search.TotalHits;
2021-11-30 13:09:49
769
原创 Elastic Search之DSL查询语句
文章目录查询所有全文查询matchmulti_match精确查询term查询range范围查询distance查询复合查询之一function score query查询排序复合查询之二Boolean query查询must should 参与打分must_not filter 不参与打分Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括:查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(
2021-11-29 22:32:05
1679
1
原创 Docker常用操作
文章目录Docker常用操作1 镜像操作2 容器操作3 数据卷操作Docker常用操作Docker有很多操作,想要全部记住特别困难。所以,我们只需要记住常用的命名,对于那些不经常用到的,可以根据--help查看帮助。下面根据是一些常用的操作1 镜像操作# 查看现有镜像docker images# 去dockerhub拉取redis镜像docker pull redis# 将镜像保存到磁盘中docker save -o redis.tar redis:latest# 移除现有的镜
2021-11-24 13:32:25
882
原创 启动Nacos出现db.num is null
文章目录前言故事的开始解决方法前言最近开始学习Spring Cloud时候,学了一个注册组件Eureka,但是相比起来,阿里提供的Nacos有更明显的优势。故事的开始于是乎,下载了Nacos,但是再启动的时候出现了问题:java.io.IOException: java.lang.IllegalArgumentException: db.num is null于是上网搜索了解决方案,原来是startup.cmd启动方式为集群cluster解决方法1 打开nacos目录下的conf,然后编辑
2021-11-20 18:37:59
1371
原创 SpringCloud组件Eureka和Ribbon
文章目录1 微服务介绍1.1 单体架构和分布式架构1.2 微服务1.3 微服务调用请求方式2 Eureka服务注册中心2.1 问题的提出2.2 Eureka的实现3 搭建Eureka3.1 搭建EurekaServer3.1.1创建一个maven项目3.1.2 导入依赖3.1.3 编写配置文件3.1.4 编写Eureka启动类3.1.5 测试3.2 服务注册EurekaClient3.2.1 导入依赖3.2.2 编写配置文件3.2.3 启动多个用户服务3.2.4 测试3.3 服务发现3.3.1 修改订单中u
2021-11-20 18:03:37
774
转载 Redis缓存穿透、击穿、雪崩简介
文章目录Redis缓存常见三个问题1 缓存穿透1.1 问题1.2 解决2 缓存击穿2.1 问题2.2 解决3 缓存雪崩3.1 问题3.2 解决Redis缓存常见三个问题1 缓存穿透1.1 问题key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。1.2 解决一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写的,并且出于容错
2021-11-18 20:22:01
326
原创 Redis-SpringBoot整合
文章目录SpringBoot-Redis整合1 介绍2 导入依赖3 配置文件4 编写配置类5 测试类6 测试SpringBoot-Redis整合1 介绍SpringBoot操作数据库:spring-data JPA JDBC Mongodb redisSpringData和SpringBoot齐名在SpringBoot2.x之后,原来使用的Jedis被替换成了lettuceJedis:采用直连的方式,多个线程操作的话,不安全,想避免的话需要使用Jedis pool连接池 BIOlettuce:
2021-11-17 15:54:57
599
原创 Redis实现简单手机验证码
手机验证码1 需求六位随机数字,两分钟内有效输入验证码,进行验证一天只能请求三条验证码2 思路生成六位随机数字 通过random实现验证码两分钟内有效 验证码放到redis中,expire比较是否一致 拿到redis中进行比较一天只能发送三条 incr设置大于2就不能发送了3 实现3.1 依赖<dep
2021-11-16 22:41:21
1052
原创 Jedis出现Connect timed out
Jedis踩得坑Redis环境:UbuntuIDEA环境:Windows 10主机和虚拟机桥接方式:NAT1 故事的开始今天试着用Jedis练练手,各方面都准备好了,兴冲冲的打开IDEA准备敲BUG,先看代码package com.xzzlx;import redis.clients.jedis.Jedis;/** * @author: * @Description: * @date:2021/11/16 16:54 */public class JedisDemo1 {
2021-11-16 20:43:51
1979
原创 Redis发布与订阅
Redis的发布与订阅文章目录Redis的发布与订阅1 什么是发布与订阅2 原理3 发布订阅命令实现3.1 订阅3.2 发布3.3 查看1 什么是发布与订阅Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息订阅者 (sub) 接收消息Redis 客户端可以订阅任意数量的频道。2 原理假如有频道1、2、3三个频道发布消息,订阅者可以任意数量的频道当某个频道发送消息的时候,订阅该频道的订阅者可以接受到消息。3 发布订阅命令实现3.1 订阅sub
2021-11-16 15:04:50
542
原创 Redis五大基本类型命令笔记
Redis学习笔记文章目录Redis学习笔记1 基本命令2 Redis基础知识2.1 Redis常识2.2 库的基本操作2.3 key常用命令3 Redis字符串3.1 字符串常用命令3.2 字符串对value值的操作3.3 原子操作3.4 同时操作多个字符串3.5 range操作4 Redis列表4.1 列表基本知识4.2 常用命令5 Redis中Set5.1 Set介绍5.2 Set常用命令6 Redis哈希6.1 简介6.2 Redis Hash常用命令7 Redis有序集合Zset7.1 简介7.
2021-11-15 17:32:16
563
原创 SpringBoot三步实现邮件发送
文章目录邮件发送1 导入依赖2 邮件发送配置3 具体代码4 测试邮件发送创建一个SpringBoot项目1 导入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </depende
2021-11-13 16:20:10
356
原创 六步SpringBoot整合Mybatis
SpringBoot整合Mybatis文章目录SpringBoot整合Mybatis1 导入依赖2 修改resources中配置文件3 连接数据库创建实体类4 创建mapper文件5 创建xml文件6 创建controller层7 启动SpringBoot项目测试1 导入依赖导入的依赖有:mybatis-spring-boot-starterspring-boot-starter-jdbcspring-boot-starter-webmysql-connector-java具体如下:&
2021-11-01 17:57:12
198
原创 SpringBoot六步实现Druid
Druid数据源连接池文章目录Druid数据源连接池1 啥是Druid2 SpringBoot引用Druid3 配置yml文件4 查看数据源5 config6 准备SQL语句10.7 测试7.1 打开后台日志地址7.2 打开访问地址1 啥是DruidDruid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。上面这段话是上
2021-11-01 14:57:56
1432
1
原创 Connections could not be acquired from the underlying database!
Tomcat运行web项目的时候出现错误信息:Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!网上有很多种解决方案,如果还是解决不了的话,那么
2021-10-22 18:31:20
307
原创 JSON字符串和JavaScript对象
JSONJavaScript Object Notation 翻译叫做JavaScript对象标记文章目录JSON1 对象和字符串2 对象和字符串转换1 对象和字符串看花括号外边有没有引号有:json字符串 {键:值}无:JavaScript对象 {属性名:属性值}var obj = { a: 'Hello', b: 'world' }; //这是一个对象,注意键名也是可以使用引号包裹的var json = '{ " a ":"Hello", "
2021-10-21 17:19:07
183
原创 前端页面乱码问题
Form表单乱码文章目录Form表单乱码1 前端表单页面2 Controller处理数据3 返回hello.jsp页面4 发生乱码5 解决6 运行在Web项目中,当前端页面发送表单数据(中文)给Controller时候,处理完之后又发送到前端页面,有时候会产生乱码的情况。解决方法:创建一个过滤器,具体实施请看5 解决1 前端表单页面<%@ page contentType="text/html;charset=UTF-8" language="java" %><html>
2021-10-21 16:43:13
1641
原创 Restful编程风格
文章目录简介1 新建类2 使用注解3 RequestMapping分解4 总结简介Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。功能资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作分别对应添加、删除、修改、查询使用步骤:1 新建类package com.xzzlx.controller;import org
2021-10-21 12:10:59
543
原创 注解实现SpringMVC
用注解的方式实现Spring MVC文章目录1 创建项目2 导入依赖3 配置web.xml4 编写springmvc-servlet.xml文件5 写控制类6 完善前端视图和controller之间的对应7 测试运行1 创建项目Idea创建web项目2 导入依赖导入依赖,并且配置build标签,防止.xml文件无法被加载<dependencies> <!-- https://mvnrepository.com/artifact/junit/junit -->
2021-10-20 18:42:24
148
原创 Tomcat的1099端口被占用
Tomcat端口1099被占用刚才使用Tomcat启动web项目的时候,发现出现了错误引言问题提示:Error running ‘Tomcat 9’: Address localhost:1099 is already in use问题分析:Tomcat9 运行错误,本机地址1099端口号已经被占用。方法解决:根据分析,我们需要判断我们端口号是不是正在有其他进程在占用分两种情况:情况一:CMD控制台能找到该端口号进程,对应第一种解决方案。因为我们端口号的确被占用情况二:CMD控制台找不到该
2021-10-20 11:24:13
6563
10
原创 Spring声明式事务
Spring声明式事务文章目录Spring声明式事务1、回顾事务2 事务ACID原则3 spring中的事务管理4 声明式事务步骤4.1 添加xml约束tx4.2 事务的Bean4.3 事务织入4.4 配置事务切入4.5 测试1、回顾事务把一组业务当成一个业务来做;要么都成功,要么都失败!事务在项目开发中,十分的重要,涉及到数据的一致性问题,不能马虎!确保完整性和一致性;2 事务ACID原则原子性:事务的所有操作在数据库中要么全部正确反映出来,要么完全不反映一致性:事务要么都成功要么都
2021-10-19 16:26:36
110
原创 Spring-Mybatis整合
Spring-Mybatis整合文章目录Spring-Mybatis整合1 导入jar包1.1 junit1.2 mybatis1.3 mysql相关的1.4 spring-jdbc1.5 mybatis-spring1.6 mysql-connect-java2 Mybatis回忆2.1 编写实体类2.2 编写核心配置文件2.3 编写接口2.4 编写Mapper.xml2.5 测试3 整合3.1 编写数据源配置3.2 sqlSessionFactory3.3 sqlSessionTemplate3.4
2021-10-19 13:02:51
534
原创 Spring注解实现AOP
Spring使用注解方式实现AOP使用注解实现实现AOP自定义类:AnnotationPointCut需要增强的实现类:UserServiceImplXML配置文件:applicationContext.xml测试类:MyTest文章目录Spring使用注解方式实现AOP1 导入一个依赖2 创建类并打上注解3 需要增强的执行类4 xml文件配置5 测试1 导入一个依赖在pom.xml文件中导入依赖<dependency> <groupId>org.aspec
2021-10-18 12:11:37
232
原创 自定义类实现SpringAOP
使用Spring实现AOP使用自定义类实现实现AOP自定义类:DefinePointCut需要增强的实现类:UserServiceImplXML配置文件:applicationContext.xml测试类:MyTest文章目录使用Spring实现AOP1 导入一个依赖2 自定义类3 创建xml文件4 测试1 导入一个依赖在pom.xml文件中导入依赖<dependency> <groupId>org.aspectj</groupId> &
2021-10-18 12:02:37
267
原创 六步实现简单Spring AOP
使用Spring实现AOP使用原生Spring API接口实现AOP,六步实现AOP接口:UserService横向切入点方法:UserServiceImpl横向切入点方法:Log、AfterLogXML配置文件:applicationContext.xml测试类:MyTest文章目录使用Spring实现AOP1 导入一个依赖2 创建接口3 创建接口实现类4 创建通知创建前置通知创建后置通知5 创建xml文件6 测试1 导入一个依赖在pom.xml文件中导入依赖<dependenc
2021-10-18 09:44:27
105
原创 Spring之动态代理
动态代理何为动态代理?相比于传统的静态代理,每一个需要代理的类,我们都需要写一个代理对象进行代理,那么一百个需要代理的类难道我们要写一百个么?答案是否定的,我们所谓的动态代理就应运而生了;它可以自动的帮我们创建相应的代理类。文章目录动态代理1 工具类2 接口3 接口实现类4 测试类首先了解两个类:Proxy:生成动态代理实例的setObject()设置需要代理的类型getProxy()得到代理的对象InvocationHandler:调用处理程序并返回结果的invoke()当代理对象pi
2021-10-17 17:27:38
243
原创 MyBatis属性优化
MyBatis配置之属性优化文章目录MyBatis配置之属性优化1 环境配置2 事务管理器3 数据源4 属性5 类型别名6 设置7 插件8 映射器9 SqlSession10 字段名和属性名冲突11.2 LOG4J11.2.1 导包11.2.2 设置11.2.3 配置11.2.4 使用11.2.4.1 导包11.2.4.2 日志对象11.2.4.3 日志级别12 分页12.1 使用Limit分页12.2 XML中设置12.3 测试12.4 分页插件13 使用注解开发14 MyBatis执行流程1 环
2021-10-16 16:18:24
111
原创 Spring框架学习Day01
1 Spring1.1 简介前身:Spring框架以interface21框架(2002年出现)为基础,经过不断设计丰富出现:2004年3月24日,正式推出Spring1.0版本作者:Rod Johnson 悉尼大学音乐博士理念:强大的向后兼容、使代码的质量更高标准使现有的技术更加容易使用,整合了现有的技术框架SSH:Struct2 + Spring + HibernateSSM:SpringMVC + Spring + MyBatis官网:https://spring.io/pro
2021-10-15 18:32:15
478
原创 MyBatis一级缓存和二级缓存
MyBatis缓存**三高:**高并发、高性能、高可用**主从复制:**现在主节点修改数据,然后传递到从节点上修改MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存为了提高扩展性,MyBatis定义了缓存接口Cache,我们可以通过实现Cache接口来自定义二级缓存一级缓存默认情况下,一级缓存开启(SqlSession级别的缓存,也称为本地缓存)。与数据库同一次会话期间查询到
2021-10-13 17:43:54
100
原创 动态SQL标签语法
MyBatis动态SQL动态SQL就是根据不同的条件生成不同的SQL语句1 IF标签BlogMapper文件/** * 查询博客 * 动态SQL之If标签 * @param map 参数 * @return 返回Blog的list */List<Blog> queryBlogIf(Map map);BlogMapper.xml文件<select id="queryBlogIf" parameterType="map" resultType="blog">
2021-10-13 16:15:28
145
原创 服务器连接mysql数据库,报错message from server: “Host xxx is not allowed to connect to this MySQL server“
操作系统 Windows开发工具:IDEA数据库:MySQL(本地W)使用MyBatis访问数据库的表提示错误信息:message from server: "Host xxx is not allowed to connect to this MySQL server"意思:拒绝主机为xxx访问连接MySQL服务器原因:MySQL为了安全起见,只允许本机访问该数据库解决方法:刷新root权限第一:打开CMD命令控制台输入cmd第二:进入本机安装MySQL的bin目录下输入你自
2021-10-12 14:25:38
994
原创 Cannot invoke “org.apache.ibatis.session.SqlSession.close()“ because “sqlSession“ is null
MyBatis遇到的神坑刚才去优化MyBatis的属性配置的时候,使用resultMap,执行测试方法,提示我错误信息可以看到错误信息Cannot invoke "org.apache.ibatis.session.SqlSession.close()" because "sqlSession" is null排雷排了一个多小时,最后终于找到问题的所在了,原来是我DAO层的mapper.xml中,同样的接口方法写了两次,都怪自己粗心大意了,删掉一个就可以了。气哭我了...
2021-10-10 22:05:03
3362
2
原创 MyBatis配置讲解总结
MyBatis配置之属性优化1 环境配置环境配置(environments)可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。2 事务管理器事务管理器(transactionManager)两种类型的事务管理器(也就是 type="[JDBC|MANAGED]")JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整
2021-10-09 17:09:53
117
原创 mysql Parameter index out of range (2 > number of parameters, which is 1).
出现这个问题,大部分是mapper.xml语句有问题当出现mysql Parameter index out of range (2 > number of parameters, which is 1).首先看下SQL语句前面是否有注释,该注释不能用#需要用正确的注释格式<!---->我就犯了这个错误其次,检查SQL语句是否多了一些奇奇怪怪的符号,例如/ \ . 等等...
2021-10-09 10:23:11
170
原创 Git操作
Git使用笔记1 下载Git(如果下载慢可以使用淘宝的镜像)Git官方地址:https://git-scm.com镜像地址:http://npm.taobao.org/mirrors/git-for-windows/2 配置Git的User下载完Git之后进入Git Bash输入以下命令完成用户配置3 环境变量PATH配置不配置都可以只是为了全局使用,鼠标右键就可以使用Git Bash也会自动配置PATH4 Git理论核心Git本地的三个工作区域 A 工作目录 B 暂存区
2021-09-26 12:06:12
120
原创 解决mysql提交事务Lock wait timeout; try restarting transaction
mysql事务未提交导致MySQLTransactionRollbackException: Lock wait timeout大多数事务未提交都是因为某个持久层进行操作时没有完成相应的写入或读出动作导致的,开启事务的时候不能自动完成提交。向数据库中插入头像数据出错了,报的是事务回滚异常可以看到,我的是在业务层的实现类中出错了两种解决方案解决方案11 检查INFORMATION_SCHEMA.INNODB_TRX表SELECT * FROM INFORMATION_SCHEMA.INNOD
2021-09-20 15:17:16
388
原创 30秒解决Tomcat乱码问题
Tomcat乱码当我们刚通过Tomcat启动项目的时候,会出现乱码的情况如图:解决方法如下:1 在Tomcat路径下找到conf目录并打开2 记事本方式打开logging.properties文件3 找到java.util.logging.ConsoleHandler.encoding = UTF-84 将UTF-8修改为GBK然后保存并重新启动Tomcat就可以了。如果觉得有用,可以点赞支持一下么!蟹蟹~~...
2021-09-06 15:04:21
301
空空如也
启动Sentinel失败,无法加载配置类,该怎么解决啊?
2021-12-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人