- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 池化思想之数据库连接池
一、池化思想池化思想:一般是对对象的池化。池化思想的具体体现:字符串常量池、数据库连接池、线程池池: 是一个容器,可以是数组、集合。好处:避免了重复创建对象的过程,提高程序的效率。为了资源的反复利用。二、数据库连接池1、为什么要用数据库连接池?数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。数据库连接池的解决方案是在应用程序启动时建立足够的
2022-04-15 13:36:41 592
原创 Springboot之简化日志管理
日志管理1.Log 日志组件能干什么日志能干的事情很多,对于学习程序,测试的工程师来说,日志能够定位问题,解决问题,是最大的功能点。记录一切 日志帮助我们记录程序功能都干了什么,无论是正常的输入输出还是出现异常,都可以用日志记录定位问题 日志可以帮助程序员调试问题,帮助测试人员定位问题记录分析用户行为 统计分析师用来记录用户的一起行为,用于分析用户的习惯和商业价值备份和还原实时数据 数据库工程师用来作为一种特殊的数据库…2.常用日志框架Log4j Apache Log4j是一个基于J
2021-11-29 11:52:07 546
原创 Spring Cloud Gateway 内置的过滤器工厂
Spring Cloud Gateway 内置的过滤器工厂内置的过滤器工厂这里简单将Spring Cloud Gateway内置的所有过滤器工厂整理成了一张表格。如下:过滤器工厂作用参数AddRequestHeader为原始请求添加HeaderHeader的名称及值AddRequestParameter为原始请求添加请求参数参数名称及值AddResponseHeader为原始响应添加HeaderHeader的名称及值DedupeResponseHea
2020-09-21 18:09:33 321
原创 Euraka配置详解
Euraka配置详解文章目录Euraka配置详解Eureka Instance实例信息配置Eureka Client客户端特性配置Eureka Server注册中心端配置Eureka Server注册中心仪表盘配置Eureka包含四个部分的配置instance:当前Eureka Instance实例信息配置client:Eureka Client客户端特性配置server:Eureka Server注册中心特性配置dashboard:Eureka Server注册中心仪表盘配置Eureka
2020-09-19 13:15:10 489
原创 RabbitMQ五种常见的工作模式
**RabbitMQ五种常见的工作模式:**1、简单模式 HelloWorld一个生产者、一个消费者,不需要设置交换机(使用默认的交换机)2、工作队列模式 Work Queue一个生产者、多个消费者(竞争关系),不需要设置交换机(使用默认的交换机)3、发布订阅模式 Publish/subscribe需要设置类型为fanout的交换机,并且交换机和队列进行绑定,当发送消息到交换机后,交换机会将消息发送到绑定的队列4、路由模式 Routing需要设置类型为direct的交换机,交换机和
2020-09-15 10:02:07 648
原创 Redis缓存相关问题(穿透、雪崩、击穿)
文章目录缓存穿透缓存雪崩缓存击穿首先,我们需要了解使用Redis缓存查询数据的流程是: 1.数据查询首先进行缓存查询。 2.如果数据存在则直接返回缓存数据。 3.如果数据不存在,就对数据库进行查询,并把查询到的数据放进缓存。 4.如果数据库查询数据为空,则不放进缓存。//伪代码:ServiceImpl.javaPublic String getId(String cacheKey){ String id = redisDao.get(cacheKey);//先查询redis缓存 If(i
2020-09-08 22:10:55 159
原创 PageHelper的不安全调用
PageHelper的不安全调用什么时候会导致不安全的分页?PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的。只要你可以保证在 PageHelper 方法调用后紧跟 MyBatis 查询方法,这就是安全的。因为 PageHelper 在 finally 代码段中自动清除了 ThreadLocal 存储的对象。如果代码在进入 Executor 前发生异常,就会导致线程不可用,这属于人为的 Bug(例如接口方法和 XML 中的不匹配,导致找不到 MappedS
2020-08-23 11:26:23 728
原创 Spring中事务传播行为种类
Spring中事务传播行为种类Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,Spring中事务传播行为是Spring框架提供的一种事务管理方式,它不是数据库提供的。它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:事务的传播行为说明PROPAGATION_REQUIRED如果当前存在事务,则加入该事务,如果当前不存在事务,则创建一个新的事务。PROPAGATION_SUPPORTS如果当前存在事务,则加入该事务;如果当
2020-08-05 19:00:04 129
原创 Spring中Bean实例化的三种方式
1) 使用无参构造方法实例化默认调用无参构造方法创建对象,如果bean中没有默认无参构造函数,将会创建失败<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>2) 工厂静态方法实例化//工厂类public class StaticFactoryBean { //静态方法,通过该方法获取对象 public static UserDao createUserDao(){ retur
2020-08-05 18:23:12 274
原创 请求转发(request)和重定向(forward)的特点区别
请求转发 *(forward)和重定向(redirect)*的区别:核心本质: forward 是一次请求, redirect 是两次请求( http 是无状态的 ,多次请求相互独立)转发的特点:转发地址栏路径不变转发只能访问当前服务器下的资源可以访问WEB-INF下的资源转发是一次请求,可以使用request对象来共享数据重定向的特点:重定向地址栏路径发生变化重定向可以访问其他站点(服务器)的资源重定向是两次请求, 不可以使用request域对象来共享数据...
2020-07-05 11:38:40 1121
原创 json为什么比xml好用
文章目录JSON和XML的对比JSON 与 XML 的相同之处:JSON 与 XML 的不同之处:为什么 JSON 比 XML 更好?JSON和XML的对比json和xml都用于接收web服务端的数据.但json和xml在写法上还是有很大不同的 , 如下所示: json{ "sites": [ { "name":"百度" , "url":"www.baidu.com" }, { "name":"google" , "url":"www.google.com" },
2020-06-30 19:24:45 381
原创 java中常见的几种排序算法的实现及比较
文章目录1.冒泡排序1.1 冒泡排序普通版1.2 冒泡排序升级版2.选择排序3.插入排序4.快速排序5.归并排序6.希尔排序7.基数排序8.堆排序各种算法的比较1.冒泡排序1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻元素,则交换两者位置,同时将较大元素作为下一个比较的基准元素,继续将该元素与其相邻的元素进行比较,直到数列的最后一个元素 . 示意图如下:/** * 冒泡排序: * 依次比较相邻的元素,若发现逆顺序,则交换。小的向前换
2020-06-28 10:01:39 360
原创 MySQL优化之索引篇: explain工具的介绍
文章目录explain简介概要描述explain各字段详解explain简介 explain专门用来做SQL语句的调优的,在select语句前面加一个explain可以把SELECT的执行过程都列出来,包括哪些用了索引,哪些没用索引,哪些查询是全表查询,哪些是索引查询等 . 使用效果如下图 :概要描述列名说明id执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句一般会顺序编号,对应于其在原
2020-06-20 23:21:12 208
原创 MySQL优化之索引篇: 索引的基础了解
文章目录1.索引的基础概念2.索引的分类3.索引的基础语法(1)索引的创建(2)索引的删除(3)索引的查看(4)alter命令(5)其他4.索引的设计原则5.索引的优缺点6.索引的结构1.索引的基础概念 MySQL官方对索引的定义为: 索引(index) 是帮助MySQL高效获取数据的数据结构(有序). 在数据之外, 数据库系统还维护满足特定查找算法的数据结构, 这些数据结构以某种方式引用(指向) 数据结构, 这样就可以在这些数据结构上实现高级查找属于算法, 这种数据结构就是索引, 如下面的示
2020-06-19 22:18:44 209
原创 Thread-----------多线程1
多线程1我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计?要解决上述问题,咱们得使用多进程或者多线程来解决.1.1 并发与并行并行:指两个或多个事件在同一时刻发生(同时执行)。并发:指两个或多个事件在同一个时间段内发生(交替执行)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YXX...
2020-04-25 21:09:02 259
原创 关于BigDecimal的使用
BigDecimal类概述表示无限大的小数类型构造方法方法说明igDecimal(double val)把小数变成BigDecimal对象igDecimal(String val)把字符串变成BigDecimal对象常用方法方法说明BigDecimal add(BigDecimal value)加法运算BigDe...
2020-03-28 21:58:13 867
转载 StringBuilder在初级程序开发中的常用方法
StringBuilder的一些常用方法本文介绍的主要是对于初级程序开发所经常使用到的StringBuilder的一些常见方法在刚步入java编程时,我们经常会遇到String、StringBuilder、ArrayList这三种常见数据存储类型,而它们的一些常见的调用方法,我总是记不住,而且容易搞混淆,因此,我对于StringBuilderh中常见的一些方法做了总结:首先,我们需要创建一个...
2020-03-18 22:24:56 149
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人