-
如何更正alpine容器内的时区
方式一:修改dockerfile文件 在dockerfile文件中添加如下指令: RUN apk add tzdata && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo Asia/Shanghai >... Read More
-
Arthas的介绍和使用
Arthas是什么? Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。 Arthas(阿尔萨斯)能为你做什么? A... Read More
-
Redis常用命令
注意:以下命令并不是Redis全部命令。 string redis字符串可以存储一个字符串。 SET key value 设置指定 key 的值。 127.0.0.1:6379> SET animal cat # 设置animal的值为cat OK GET key 获取指定 key 的值。 ... Read More
-
Spring系列-ObjectFactory与OjbectProvider
在之前讲解Spring系列-依赖注入实现原理-注解配置的时候,在解析依赖resolveDependency()方法中已经碰到过了ObjectFactory和ObjectProvider,在那里我们说了它们可以解决懒加载以及依赖注入为null的问题,这一节我们就来详细讲讲这两个类。 接口定义 ObjectFactory 我们先来看一下Ob... Read More
-
Spring系列-Spring事件机制详解
Spring给我们提供了事件通知机制,下面我们就看一下Spring怎么使用事件通知以及事件通知的实现原理是什么。 自定义事件通知 自定义事件通知需要三步: 自定义事件 自定义事件监听器 发布事件 自定义事件 自定义事件类要继承org.springframework.context.ApplicationEv... Read More
-
Spring系列-自定义Spring Scope
上一节我们在Spring系列-Spring Scope详解讲了Spring Scope怎么使用以及Scope代理是怎么实现的,这一节我们将如何自定义Spring Scope。 自定义Spring Scope只需要三步: 定义Scope实现类 注册Scope实现类 使用自定义Scope 定义Scope实现类 定义Scope实现类需... Read More
-
Spring系列-Spring Scope详解
在Spring中,默认有两种Scope:singleton和prototype。其它框架也会依据自己的需求扩展Scope,当然我们也可以在我们的程序中对Scope进行自定义扩展,这一节我们先看一下Scope的基本使用以及实现原理。 Scope有两种配置方式 XML配置 <bean id="Test" class="com.d... Read More
-
Spring系列-Spring循环依赖详解
什么是循环依赖? 循环依赖其实就是在我们的程序中,类A需要依赖于类B,类B又需要依赖于类A,这时候两个类实例就构成了相互依赖,即循环依赖。如下所示: @Component public class A { @Autowired private B b; } @Component public class B {... Read More
-
Spring系列-BeanPostProcessor详解
BeanPostProcessor是什么? 同BeanFactoryPostProcessor一样,BeanPostProcessor也是Spring的一个扩展点,不同的是,BeanFactoryPostProcessor主要是用来处理BeanDefinition的,而BeanPostProcessor主要是用来处理Bean... Read More
-
Spring系列-BeanFactoryPostProcessor详解
BeanFactoryPostProcessor是什么? BeanFactoryPostProcessor是Bean工厂后置处理器,它是Spring的一个扩展点,可以让我们在Spring初始化Bean之前修改BeanDefinition或者注册BeanDefinition。接口定义如下: @Functiona... Read More
-
Spring系列-Spring事务实现原理分析
上一篇文章Spring系列-Spring事务的基本概念中我们介绍了事务的基本概念以及Spring在实现过程中常用类的作用。这一篇文章我们就从源码的角度来介绍以下Spring是怎么实现事务的。 Spring使用事务的两种方式 编程式事务 通过PlatformTransactionManager控制事务,该方式我们需要手动调用... Read More
-
Spring系列-Spring事务的基本概念
什么是事务 一般我们说事务就是在说数据库事务,数据库事务是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 事务的四个特性 原子性(Atomicity) 一个事务中的所有操作,或者全部完成,或者全部不完成,不会... Read More
-
Spring系列-Spring Aop实现原理分析
前面我们讲了Spring Aop的基本概念和几种使用方式,这一节我们讲一下Spring Aop的实现原理。其实一句话总结实现原理就是通过动态代理拦截匹配的方法调用,进行方法的增强。下面我们以 最常用的AnnotationAwareAspectJAutoProxyCreator类开始看一下Spring Aop的源码。 首先看一下Annota... Read More
-
Spring系列-Spring Aop使用的几种方式
Spring中有多种方式可以使用Spring Aop,例如: 基于ProxyFactoryBean 基于BeanNameAutoProxyCreator或DefaultAdvisorAutoProxyCreator 基于AspectJAwareAdvisorAutoProxyCr... Read More
-
Spring系列-Spring Aop基本概念
在我们讲解Spring Aop之前,我们先要说一下Aop。Aop是面向对象的一种补充,可以让我们以面向切面的方式进行编程。面向切面的编程是一种编程范式,旨在通过允许横切关注点的分离,提高模块化。 Aop实现的关键就是把切面应用到目标对象,实现Aop的技术可分为静态织入和动态代理。 ... Read More