- 博客(77)
- 收藏
- 关注
原创 过滤器和拦截器的区别
有意思的是:postHandle() 方法被调用的顺序跟 preHandle() 是相反的,先声明的拦截器 preHandle() 方法先执行,而postHandle()方法反而会后执行。得到答案就只能看源码了,我们要知道controller 中所有的请求都要经过核心组件DispatcherServlet路由,都会执行它的 doDispatch() 方法,而拦截器postHandle()、preHandle()方法便是在其中调用的。过滤器Filter执行了两次,拦截器Interceptor只执行了一次。
2024-03-17 21:07:17
762
原创 消息队列面试题
正常情况下,消费者在消费完消息后,会发送一个确认的消息给消息队列,消息队列知道该消息被消费了,就会把该消息从队列删除。如果消息是数据库插入操作,给消息一个唯一主键,如果出现重复消费的情况,会导致主键冲突,数据库避免有脏数据。存储消息的最小单元,他们之间的消息都是互相隔离的,在这种情况下, 是无法保证消息全局有序的
2024-03-17 12:07:28
1200
原创 文章汇总(专题整理、面试总结、自学教程)
这么多年的程序员职业生涯中,都没有好好整理所知所会的知识,老是时间一长会忘记。在这里做一个总结,也当是自己的复盘。专题整理(系统学习)
2024-03-03 11:57:17
524
转载 SpringCloud 一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系
Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。
2022-03-01 16:40:27
409
原创 分布式事务seata-tcc使用详解
前言:上一篇文章我们分析了seata-At强一致性的分布式事务框架,在高并发下性能不及seata-tcc。我们本篇文件分析一下seata-tcc的使用和需要注意的地方,以及原理简介。
2022-01-24 18:08:46
3011
3
原创 tomcat使用AbstractQueuedSynchronizer进行限流分析
前一篇文章,分析了tomcat的启动过程,tomcat的start启动过程,一步一步的启动,主线程创建accpetor线程,accpetor线程阻塞的监听8080端口的请求进来,如果有请求进来,然后就把它放入一个事件列表中,又继续监听8080端口。主线程创建的poller线程就去轮训事件列表,如果有事件进来,那就交给线程池去处理。我们这一篇文章来分析tomcat的限流。
2021-11-24 18:07:06
1036
1
原创 tomcat启动过程-start启动
tomcat的start启动过程,使用socket网络编程来监听8080端口,使用nio优化bio,使用线程池技术来实际处理请求。
2021-11-05 17:31:30
1725
原创 tomcat启动过程-load初始化
本篇文章主要是tomcat源码的load初始化流程,模板设计模式,监听者模式,反射等技术在tomcat中的使用
2021-10-29 16:26:22
756
1
原创 tomcat源码分析环境搭建
tomcat不管是在以前的SSH框架,还是SSM,到现在的SpringBoot再到SpringCloud。都一直在使用,只是从之前的外用tomcat演变到了内嵌tomcat。所以说学习tomcat源码是有必要的。了解其内在原理,我们才能在开发和优化性能的时候才能游刃有余。
2021-10-22 10:09:26
365
转载 Mybatis常见面试题总结
1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。(2)作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。称Mybatis是半自动ORM映射工具,是因为在查询关联对象或关联集合对象
2021-07-12 18:40:26
165
原创 Spring源码深度解析-IOC的初始化过程之refresh()--prepareBeanFactory--BeanPostProcessors--ApplicationListener
Spring中的应用监听者ApplicationListener
2021-04-27 22:21:34
216
原创 Spring源码深度解析-IOC的初始化过程之refresh()--prepareBeanFactory--BeanPostProcessors
本篇文章我们分析一下Spring源码中refresh()--prepareBeanFactory以下两个方法。beanFactory.addBeanPostProcessor(new ApplicationContextAwareProcessor(this));beanFactory.addBeanPostProcessor(new ApplicationListenerDetector(this));首先我们可以看到在prepareBeanFactory这个方法里面有多个addBeanP
2021-04-22 17:07:52
161
原创 Spring源码深度解析-IOC的初始化过程之refresh()--prepareBeanFactory--ResourceEditorRegistrar
ResourceEditorRegistrar进行分析之resourceLoader beanFactory.addPropertyEditorRegistrar(new ResourceEditorRegistrar(this, getEnvironment()));//接着进入ResourceEditorRegistrar 其中this是resourceLoader getEnvironment()返回的是 ConfigurableEnvironment//查看resourceLoad..
2021-04-18 22:19:31
380
原创 Spring源码深度解析-IOC的初始化过程之refresh()--prepareBeanFactory
prepareBeanFactory 配置工厂的一些标准上下文特征
2021-04-18 17:42:46
114
原创 《ssm商城项目学后心得之redis》
商城项目学后心得之redis1.目录表目录商城项目学后心得之redis1.目录表2.redis安装第一步:去官网下载redis第二步:解压第三步:将目录cd 到解压的目录下面 然后make命令第四步:正式安装redis,安装redis可指定安装目录第五步:将redis设置成后端启动,同时将redis设置成开机自动启动3.redis的基础知识,这里不...
2019-03-15 20:06:23
416
转载 Spring AOP
Spring AOP Schema aop:config、tx:adviceSpring AOP Schema aop:config、tx:advice一、 利用aop:config标签实现AOP首先看个例子,如下接口代码:package com.lei.demo.aop.schema;public interface IHello { public ...
2018-12-01 15:36:09
135
转载 Spring事务传播行为
Spring事务传播行为:spring特有的事务传播行为,spring支持7种事务传播行为,确定客户端和被调用端的事务边界(说得通俗一点就是多个具有事务控制的service的相互调用时所形成的复杂的事务边界控制)下图所示为7钟事务传播机制o 传播行为含义1.PROPAGATION_REQUIRED(XML文件中为REQUIRED)表示当前方法必须在一个具有事务的上下文中运...
2018-12-01 14:44:05
170
原创 spring注解讲解(通俗易懂)
使用注解来构造IoC容器用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册<context:component-scan base-package=”pagkage1[,pagkage2,…,pagkageN]”/>。如:在base-package指明一个包 <context:component-scan base...
2018-11-30 14:16:37
706
原创 Oracle总结
字符串大小写敏感 日期格式敏感 修改日期格式 查询(select * from v$nls_parameters;) alter session set NLS_DATE_FORMAT='yyyy-mm-dd'; between and 在。。。。之间 select *from emp where sal between 1000 and 2000;含有边界 2. 小值在前 大值...
2018-10-21 15:20:14
236
原创 关于struts2中使用OGNL表达式取值,取不到值的原因及解决方法
struts2中使用的OGNL表达式在拿action中的值的时候无论如何都取不到。今天查看了一天的资料终于找到解决办法了UserAction.java 这个类查出了一个“lists”,也就是我在jsp页面中要取的值。package tm.change.action; import java.util.ArrayList;import java.util.List; imp...
2018-10-15 16:23:04
326
原创 《java之反射访问私有域和私有方法》
本文将介绍Java 反射之私有字段和方法的应用,需呀了解的朋友可以参考下尽管我们通常认为通过JAVA的反射机制来访问其它类的私有字段和私有方法是可行的,其实并没有那么困难。 注释:只有在单独的JAVA程序中运行该代码才有效,就像你做一些单元测试或者常规的程序。如果你尝试在JAVA APPLET内使用该方法,你需要稍稍修改SecurityManager。但是,因为你不是经常需要与它打交道,这里...
2018-09-03 00:07:00
481
转载 《struts2总结》
struts2知识总结 2.Struts2和Servlet的对比 3.Struts2程序运行流程 4.Struts2的配置文件 包括自己内部的.properties、default.xml以及自定义的配置文件struts.xml和web.xml 先加载内部自己的配置文件,后加载用户自定义的配置文件,后...
2018-08-24 08:57:53
396
原创 《maven管理工具》
1)下载maven管理工具http://maven.apache.org/download.cgi选择 2)配置环境3)创建工程选择下载的maven管理工具4)修改本地仓库 需要打开maven里面的conf文件夹找到setting.xml文件修改如图所示的本地仓库地址,需要自己下载配置本地仓库5)创建maven工程处理红色叉号手动在webapp文件夹...
2018-07-17 19:44:43
171
原创 《Python学习笔记》阶段一之基础学习
1.注释 #或者''' ''' 或者""" """;2.输出函数print("");3.代码块。用冒号作为开始,具有相同缩进的代码。缩进需要相同类型,tab和空格(4个)不一样;if 5==5: print("") print("")if False: print("") print("") #没有花括号,以冒号开始,以缩
2018-07-16 16:50:33
200
原创 《Python学习笔记》阶段一之linux基础
兄弟连实训: 第一阶段:安装软件,配置环境。(linux简介) (1)镜像下载,vmware下载,然后进入Ubuntu界面。 (2)点击虚拟机,选择重新安装vmware tools,然后解压桌面的文件,然后进入文件夹右键进入命令行界面 输入sudo ./vmwa...
2018-07-12 16:09:16
236
转载 《java工具包简介》
使用dbutils-commons.jar可以简化有关操作数据库的代码QueryRunnerupdate方法int update(String sql,Object...params):执行增删改语句int update(Connection con,String sql,Object...params):需要调用者提供Connection,该方法不再管理Connection(支持事务)query...
2018-07-05 14:37:51
183
原创 《mysql学习笔记》
常用语句----实现 crud (增加,删除,修改 ,查询) ---增加数据INSERT INTO emp VALUES();删除部分delete from emp where id=29---修改所有行updata emp set empname='张三',set='男'---修改指定行updata emp set empname='张三',set='男' where id=1---...
2018-07-04 15:32:06
135
原创 《jQuery笔记系列》
原生与jquery的用法区别$(document).ready(function(){--- jQuery functions go here ----}); var v =document.getElenmentById("id").value; var v2=$("#id").val;点击事件jqurey的基本语法$("#id").click(){匿名函数}click(){ ...
2018-07-03 20:13:32
135
原创 《网页笔记系列》js
js调用的三种方式<script type="text/javascript">function cheack(){var un=document.getElementById("").value;}</script><button onClick="cheack()">或者<button onClick="window.open('www
2018-07-03 11:54:59
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人