自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 springboot日志框架

Java 中的日志框架主要分为两大类:日志门面和日志实现。日志门面定义了一组日志的接口规范,它并不提供底层具体的实现逻辑。Apache Commons Logging 和 Slf4j(Simple Logging Facade for Java 简单日志门面) 就属于这一类。日志门面的作用:解决系统与日志实现框架的耦合性。每一种日志框架都有自己单独的 API,要使用对应的框架就要使用其对应的 API,这就大大的增加应用程序代码对于日志框架的耦合性。

2023-08-02 15:30:52 106 1

原创 mysql隔离级别及实现原理

读未提交,它是性能最好,也可以说它是最野蛮的方式,因为它压根儿就不加锁,所以根本谈不上什么隔离效果,可以理解为没有隔离。串行化,读的时候加共享锁,也就是其他事务可以并发读,但是不能写;写的时候加排它锁,其他事务不能并发写也不能并发读。读已提交是通过MVCC+快照读实现的,每次执行语句的时候都要重新创建一次快照。可重复读是通过MVCC+快照读实现的,仅在事务开启的时候创建一次快照。并发更新:行锁解决了并发更新的问题。

2023-06-15 18:01:29 929

原创 redis

6、因为采用了追加方式,如果不做任何处理的话,AOF文件会变得越来越大,为此,redis提供了AOF文件重写(rewrite)机制,即当AOF文件的大小超过所设定的阈值时,redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集。所以,redis还提供了另一种持久化方式,那就是AOF。4、默认的AOF持久化策略是每秒钟fsync一次(fsync是指把缓存中的写指令记录到磁盘中),因为在这种情况下,redis仍然可以保持很好的处理性能,即使redis故障,也只会丢失最近1秒钟的数据。

2023-06-07 16:45:14 92

原创 lambda表达式延迟执行

【代码】lambda表达式延迟执行。

2023-05-23 17:12:27 118 1

原创 Java中使用Groovy

不同的流程模板生成的事项在完结时可以做不同的逻辑处理,因为流程模板有很多,且这些逻辑都是很定制化的内容,如果维护在java代码中则很冗余且开发成本高,可无法对用户开放,这时使用groovry的话,在java代码中开发一个入口,事项完结时执行,这个入口可以去调用groovry代码(可以维护在配置文件中,可以维护在数据库中),以实现逻辑定制处理;执行方式可以将groovy编写的源文件编译成class字节码文件,然后交给JVM去执行,也可以直接将groovy源文件解释执行。既支持面向对象编程也支持面向过程编程。

2023-05-23 16:03:35 602

原创 Spring事件机制

事件广播器ApplicationEventMulticaster中维护者所有的监听器ApplicationListener,当事件发布器ApplicationEventPublisher发布一个事件ApplicationEvent到事件广播器中,事件广播器会遍历所有符合事件类型的事件监听器,对事件进行消费监听;

2023-05-19 15:11:19 31 1

原创 SpringMvc框架

① Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是该模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。② View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

2023-05-12 17:24:09 48

原创 Tomcat基础

1.tomcat是一个由Java编写的程序,启动tomcat,其实就是启动BootStrap 中的main方法(任何java程序的启动入口都是main方法);2.tomcat是一个web服务器软件,用于部署web包/jar包,让客户端能够访问部署在tomcat中的web包/jar包中的静态资源及动态资源;3.我们常说的servlet技术,filter技术, IO模型(NIO和BIO), 应用层协议(HTTP/HTTPS),都是在tomcat中实现的;

2023-05-10 17:58:10 180

原创 SpringBoot之自动装配原理

springboot的自动装配是由@Import(AutoConfigurationImportSelector.class)实现的,AutoConfigurationImportSelector在process方法中调用getCandidateConfigurations方法,获取classPath下的spring.factories文件中的所有的值,筛选出EnableAutoConfiguration对应的配置类注册为bean。1.对上下文content进行了初始化,必要的bean定义。

2023-05-06 19:28:07 67

原创 Spring之AOP

2、Cglib是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法进行增强,但是因为采用的是继承,所以该类或方法最好不要声明为final,对于final类或方法,是无法继承的。getAdvicesAndAdvisorsForBean方法,Advisor(执行者)包括Advisors(执行的方法)和Pointcut (切面)1、JDK动态代理只能对实现了接口的类生成代理,而不能针对类。Spring中AOP底层的实现是基于动态代理进行实现的。常见的动态代理技术有两种:JDK的动态代理和CGLIB。

2023-05-04 18:29:27 85 1

原创 spring之三级缓存

结果beanB发现自己也需要依赖beanA,此时就会触发三级缓存中的ObjectFactory方法。如果beanA刚好要进行aop,那么在beanB的实例化过程中,由于beanB依赖了beanA,beanA就会提前进行aop。在@2处,进行aop之前会判断该beanName是否已经进行过aop,所以这个beanA不会再次被增强。populateBean之前的步骤可称之为实例化bean,populateBean之后的步骤称之为初始化bean,正是因为初始化和实例化是分开的,才可以解决循环依赖的问题。

2023-05-04 16:58:03 323 1

原创 说明所有BeanPostProcessor的触发时机

1.【调用时机】在bean的初始化后(也就是调用initMethod后)(或者在InstantiationAwareBeanPostProcessor的postProcessBeforeInstantiation方法返回了一个不为null的bean后)3.【例子】ApplicationContextAwareProcessor的postProcessBeforeInitialization的方法中,对相对应的bean进行基础属性的复制,例如ApplicationContext。

2023-04-24 16:03:07 177

原创 Spring之bean的创建过程

1.spring的bean实例化的入口方法为getBean. 这个方法在AbstractBeanFactory类中,这个方法进一步调用doGetBean方法来获取实例。

2023-04-24 14:32:52 51 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除