
Spring
文章平均质量分 86
陈菜头
这个作者很懒,什么都没留下…
展开
-
spring中@Validated注解的使用
一、背景日常开发过程中,经常遇到大量的参数进行校验,在业务中还要抛出异常等校验信息,在代码中相当冗长, 充满了if-else这种校验代码,代码不够优雅,使用spring的javax.validation注解式参数校验,可以免去繁琐的校验。二、@Validated注解单层对象的实体类@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class Person { @NotNull(message = "id添加时可以为空,原创 2021-06-10 20:13:06 · 17732 阅读 · 0 评论 -
Spring的循环依赖问题解决
概念Spring容器循环依赖问题单例情况下,spring容器中默认是利用三级缓存解决好循环依赖的问题的,多例的情况下是没有解决的,因为设置注入的多例对象不明确,就会产生循环依赖问题。三级缓存三级缓存关键代码,从三级缓存中获取对象 protected Object getSingleton(String beanName, boolean allowEarlyReference) { //从一级缓存中查询是否存在该对象 查询完整的对象 Object singletonObject = th原创 2020-07-09 10:14:13 · 247 阅读 · 0 评论 -
Spring声明式事务源码深度解析
整体流程开启@EnableTransactionManagement注解引入TransactionManagementConfigurationSelector.class这个类加载AutoProxyRegistrar.class,ProxyTransactionManagementConfiguration.class两个对象注册 InfrastructureAdvisorAutoProxyCreator.class这个对象,它是BeanPostProcessor的子类,beanid是org.s原创 2020-07-08 08:15:31 · 295 阅读 · 0 评论 -
SpringAop深度解析
Aop的基本概念Aop面向切面编程,在方法之前和之后实现处理 应用场景在于:日志打印、事务实现、安全等。下面展示五个通知的例子。注意:ProceedingJoinPoint只能在环绕通知中拿到,其他的通知拿不到的,其他通知拿的是JoinPointpackage com.mayikt.aspect;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.l原创 2020-07-07 21:28:31 · 128 阅读 · 0 评论 -
SpringBean的生命周期深度解析
单例和多例单例默认在容器创建的时候就会初始化,容器关闭的时候销毁多例在使用对象的时候才会初始化生命周期调用无参构建函数创建对象—对象初始化—对象销毁对象的初始化和销毁过程自定义对象的初始化操作和对象销毁的操作,单例的销毁是在容器关闭的时候才会把对象销毁下面展示第一种使用@Bean注解指定初始和销毁方法代码。package com.mayikt.v4.entity;/** * @Description: * @Author: ChenYi * @Date: 2020/07/03原创 2020-07-05 07:48:24 · 186 阅读 · 0 评论 -
Spring中的AnnotationConfigApplicationContex深度解析
BeanFactory和ApplicationContext的作用和区别BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关心,负责bean的生命周期ApplicationContext继承BeanFactory,除了BeanFactory所提供的功能之外,还提供了更完整的框架功能AnnotationConfigApplicationContexAnnotationConfigApplicationContex的类图基于注解package c原创 2020-07-04 13:29:16 · 635 阅读 · 0 评论 -
Spring5.0常用的注解解析
@Configuration表示该类为配置类,相当于Spring的xml配置文件,然后会在该类中注入一些bean对象,项目中一般注入的是第三方的依赖对象,通常会结合@ComponentScan注解一起使用,扫包范围的包package com.mayikt.v2.config;import com.mayikt.v1.entity.UserEntity;import org.springframework.context.annotation.Bean;import org.springframe原创 2020-07-03 13:37:42 · 426 阅读 · 0 评论