
spring
文章平均质量分 67
Cofer_Yin
这个作者很懒,什么都没留下…
展开
-
SpringBoot 自动写Starter
springboot自动装配原理第一次使用springboot的时候,都感觉很神奇。只要加入一个maven的依赖,写几行配置,就能注入redisTemple,rabbitmqTemple等对象。这一切要从spring的的@bean和@Configuration注解说起如果spring扫描到一个类加了@Configuration注解,那么这个类下面的@bean注解的返回对象就会注册到spring的容器里面然后就能通过@Autowired注解获取beanspring容器以springboot里面的原创 2021-08-10 13:48:18 · 172 阅读 · 0 评论 -
彻底理解三级缓存和循环依赖(二)
又读了一遍源码现在对三级缓存有了新的理解,才发现网上很多写的三级缓存相关的东西都是错的,包括我自己之前的第一篇,也有理解不准确的地方,这里我简单描述一下正确的理解过程。但是还是建议在阅读上一篇彻底理解三级缓存和循环依赖文章之后,再对此文进行阅读。三级缓存singletonObjects 保存了所有完整的bean对象。earlySingletonObjects 保存了调用过三级缓存中getEarlyBeanReference()的,且还未完全创建的bean对象。singletonFactorie.原创 2021-08-08 23:24:01 · 263 阅读 · 0 评论 -
Spring源码阅读(一)
Spring源码阅读,我们直接用idea,maven,然后通过Spring最基本的xmlApplicationContext进行xml加载获取bean的形式进行处理,通过断点执行,进行源码的阅读。本文需要一定的Spring编程经验,内容都是博主理解和整理的,如有问题请指出。0、准备阶段首先构建项目,用最原始的方法使用Spring。目录Userpackage com.yin.demo.bean;import lombok.AllArgsConstructor;import lombo.原创 2021-08-07 15:00:20 · 1317 阅读 · 0 评论 -
logback配置文件,搭配springboot使用,显示好看
XML文件logback-prod.xml<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true --><!-- scanPerio原创 2021-06-15 15:57:06 · 542 阅读 · 0 评论 -
springboot事件机制
因为ApplicationContest实现了ApplicationEventPublisher,所以实现了spring的事件通知机制ApplicationEvent ApplicationListener::onApplicationEvent// 定义一个事件public class EventDemo extends ApplicationEvent { private String message; public EventDemo(Object source, Stri原创 2021-08-04 16:25:31 · 590 阅读 · 0 评论 -
完全弄懂spring中的事务传播机制(required,require_new,nested)
Spring中的事务传播机制spring中的事务传播机制之前一直不是很懂,这次整理了一下,对于难理解的三种传播机制做了比较分析,这三个在项目中还是比较常用的,建议理解消化,对比记忆。下面先把整理好的表格放上来。主要应对的三种情况的异常:外层正常try-catch内层,内层出错;外层正常,内层出错,外层不try-catch;外层出错,内层正常。下面我把测试代码块放上来目录结构数据库表结构TestMapperpackage com.example.demo.mapper;import原创 2021-08-04 15:48:16 · 871 阅读 · 0 评论 -
彻底讲懂Spring singletonBean循环依赖与三级缓存
这里指的是单例的、非构造依赖的循环引用。很多人都知道Spring用了三层缓存来解决循环依赖,但是不知道其原因,为什么是三级缓存?二级缓存不行吗?一级缓存不可以 ?如果是构造函数中存在循环依赖,则报错。bean的流程:beanDefinition->bean实例化->填充属性->aware->beanPostprocessor.before->init->beanPostProcessor.after->单例池+三级缓存Spring 解决循环依赖的核心就是.原创 2021-06-21 15:59:38 · 610 阅读 · 0 评论 -
Spring-learning2
Spring-2二、Spring容器单例bean与单例模式不同,单例bean表示根据Class引申的BeanDefinition是单例的,但是他依旧可以创建多个实例。单例、原型:这两个是相对的概念,而且把他们放在一起就可以更好的理解单例bean。首先讲一下原型bean,表示把原本的class作为一个原型,每次的BeanDefinition都是根据原型创造的。1.单例池ConcurrentHashMap singletonObject beanName Object2.BeanFact原创 2021-04-09 16:08:21 · 129 阅读 · 0 评论 -
Spring-learning-1
Spring-1一、定义Bean的几种方式Bean是什么:JavaBean、SpringBean,Bean是一种对象,Bean的对象具有set,get,toString等方法@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class User { private String name;}xmlApplicationContext applicationContext = new ClassPathXml原创 2021-04-09 16:05:51 · 138 阅读 · 0 评论