
Spring
文章平均质量分 85
Spring
XP-Code
这个作者很懒,什么都没留下…
展开
-
Spring中的事务
一、使用在方法上加上@Transactional注解:控制事务的传播性:@Transactional(propagation=Propagation.REQUIRED)控制事务的隔离级别:@Transactional(isolation = Isolation.READ_UNCOMMITTED)设置只读:@Transactional(readOnly=true)该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false。设置事务的超时性:@原创 2021-04-10 21:54:45 · 162 阅读 · 0 评论 -
【Spring 源码解析】从AbstractAutowireCapableBean的applyBeanPostProcessorsAfterInitialization()方法看AOP原理
文章目录一、AOP中的动态代理Spring 生成代理对象1. 生成代理对象2. 执行代理方法3. 触发AOP的通知(1)拦截器的生成(2)拦截器的执行从【Bean的生命周期】中得知,在实例化Bean完成之后会调用init方法,然后再调用AbstractAutowireCapableBeanFactory#applyBeanPostProcessorsAfterInitialization()方法生成一个代理对象,其实不管是我们getBean()获取到的对象还是AOP中真正使用的对象都是这个代理对象wrap原创 2020-12-12 11:00:42 · 483 阅读 · 1 评论 -
【Spring 源码解析】4、从AbstractApplicationContext.refresh()方法看BeanFactory创建过程
文章目录1. prepareRefresh()方法进行准备工作2. obtainFreshBeanFactory()方法获取BeanFactory2.1 实例化一个DefaultListableBeanFactory对象2.2 BeanFactory定制2.3 Bean加载(1)配置文件加载(2) Bean解析注册(2.1). createBeanDefinitionDocumentReader():(2.2). createReaderContext():(2.3). registerBeanDefini原创 2020-12-10 16:32:39 · 508 阅读 · 2 评论 -
【Spring 源码解析】3、ClassPathXmlApplicationContext和AnnotationConfigApplicationContext
文章目录一、ClassPathXmlApplicationContext1.构造器2. 设置配置文件路径2.1`resolvePath()` 方法:2.2 getEnvironment()方法2.3 resolveRequiredPlaceholders()方法3. `Environment接口`4. PropertySource和PropertySources4. Profile二、AnnotationConfigApplicationContext1. 构造函数:2. register()方法3. re原创 2020-12-10 13:20:12 · 2697 阅读 · 0 评论 -
【Spring 源码解析】2、从AbstractAutowireCapableBeanFactory.createBean()方法看Bean的生命周期
一、Bean生命周期源码BeanFactory获取Bean的时候,如果缓存中没有并且父Bean工厂也没有的时候会执行创建Bean的操作,主要逻辑是在AbstractAutowireCapableBeanFactory的createBean()方法中:@Overrideprotected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) throws BeanCreationExce原创 2020-12-08 21:41:52 · 302 阅读 · 0 评论 -
Spring中的@Lookup注解和<lookup-method>标签
@Lookup 是xml配置标签look-up的注解实现。一、<lookup-method/>标签假设一个单例模式的bean A需要引用另外一个非单例模式的bean B,为了在我们每次引用的时候都能拿到最新的bean B,我们可以让bean A通过实现ApplicationContextWare来感知applicationContext(即可以获得容器上下文),从而能在运行时通过ApplicationContext.getBean(String beanName)的方法来获取最新的bean原创 2020-12-08 19:26:45 · 1515 阅读 · 0 评论 -
【Spring 源码解析】1、从AbstractBeanFactory.getBean()方法看获取Bean的流程
一、注解实现Bean注入(1)新建一个User类package com.xp.spring.bean;public class User { public String name; public int age; private void initUser() { System.out.println("initUser..."); name = "xp"; age = 20; } @Override pu原创 2020-12-08 16:42:36 · 391 阅读 · 0 评论