- 博客(9)
- 资源 (14)
- 收藏
- 关注
原创 面试官:Spring AOP是怎么实现的?
介绍Spring AOP的实现和IOC的实现比起来还是比较简单的。在正式介绍流程之前,先介绍一个接口public interface BeanPostProcessor { // 在bean初始化之前执行 @Nullable default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } // 在Bean初始化之后执行
2020-06-27 14:23:11 8715 2
原创 面试官:高并发下如何保证接口的幂等性?
介绍幂等性就是同一个操作执行多次,产生的效果一样。如http的get请求,数据库的select请求就是幂等的在分布式系统中,保证接口的幂等性非常重要,如提交订单,扣款等接口都要保证幂等性,不然会造成重复创建订单,重复扣款,那么如何保证接口的幂等性呢?前端保证幂等性的方法按钮只能点击一次用户点击按钮后将按钮置灰,或者显示loading状态RPG模式即Post-Redirect-Get,当客户提交表单后,去执行一个客户端的重定向,转到提交成功页面。避免用户按F5刷新导致的重复提交,也能消除按浏览.
2020-06-22 23:51:01 6002
原创 面试官:Spring如何解决循环依赖?
介绍先说一下什么是循环依赖,Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化完成Spring的循环依赖有两种场景构造器的循环依赖属性的循环依赖构造器的循环依赖,可以在构造函数中使用@Lazy注解延迟加载。在注入依赖时,先注入代理对象,当首次使用时再创建对象完成注入属性的循环依赖主要是通过3个map来解决的构造器的循环依赖@Componentpublic class ConstructorA { private Co.
2020-06-21 19:32:25 1457
原创 面试官:说一下Spring Bean的生命周期呗
Bean的生命周期BeanFactory的默认实现为DefaultListableBeanFactory,Bean生命周期和方法映射如下BeanDefinition注册阶段:registerBeanDefinitionBeanDefinition合并阶段:getMergedBeanDefinitionBean实例化前阶段:resolveBeforeInstantiationBean实例化阶段:createBeanInstanceBean实例化后阶段:populateBeanBean属性赋值前.
2020-06-20 18:57:35 4066 5
原创 面试官:String类为什么被设计为不可变的?
从哪看出来String类是不可变的?public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[];}String类的值是保存在value数组中的,并且是被private final修饰的p
2020-06-20 16:17:19 8068 13
原创 推荐一些冷门但是超级实用的工具
ZooInspector下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip当我们想看zookeeper上的节点信息时,输命令很麻烦,也不直观,介绍一个可视化的客户端解压后进入build目录执行命令java -jar zookeeper-dev-ZooInspector.jar输入连接地址,即可看到zookeeper的节点值,权限信息,还是很方便的codebeautify网址:http
2020-06-19 00:54:25 1110
原创 Spring MVC源码解析:异常解析器,统一处理处理请求中发生的异常
介绍@NullableModelAndView resolveException( HttpServletRequest request, HttpServletResponse response, @Nullable Object handler, Exception ex);HandlerExceptionResolverComposite组合了3个异常解析器ExceptionH...
2020-06-14 15:39:23 1467
原创 面试官:Redis中过期的key是怎么被删除的?
介绍我们可以给Redis中的key设置过期时间,那么当key过期时Redis是如何处理的呢?redis过期key的删除策略有如下两种惰性删除定时删除惰性删除客户端在访问key的时候,对key的过期时间进行校验,如果过期了就立即删除定时删除Redis会将设置了过期时间的key放在一个独立的字典中,定时遍历这个字典来删除过期的key,遍历策略如下每秒进行10次过期扫描,每次从过期字典中随机选出20个key删除20个key中已经过期的key如果过期key的比例超过1/4,则进行步骤一.
2020-06-13 22:49:23 2285 3
原创 面试官:让你写一个单点登陆组件,你会怎么实现?
单系统登陆在企业的发展初期,系统不是很多,每个系统也比较独立,每个系统都有各自的登陆模块,各类工作人员每天只登陆自己负责的系统即可。这个时候登陆的实现比较简单,基于cookie和session就能实现,不太清楚的可以我看之前写的文章基于Java写一个登陆系统多系统登陆随着企业的发展,系统越来越多,并且信息化程度也越来越高。各种系统之间的数据逐渐打通,工作流程形成闭环,这时系统逐渐微服务化。但是用户用着不爽了,每天工作得登录好几个系统,超级麻烦啊,能不能登陆一次就能在多个系统之间随意访问。为了应.
2020-06-03 22:14:23 1041
mybatis-generator-core-1.3.5.jar
2019-08-15
将doc文件批量转为docx文件,用python将doc文件批量转为docx文件
2017-12-28
Spring MVC学习指南
2017-10-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人