Spring IOC的缓存

Posted linlf03

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring IOC的缓存相关的知识,希望对你有一定的参考价值。

1、将上一篇的测试代码修改如下

public class SpringTest 

	public static void main(String[] args) 
			
		ClassPathResource resource = new ClassPathResource("com/example/spring/beans.xml");
		DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
		
		XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
		
		reader.loadBeanDefinitions(resource);
		
		Person person = (Person)factory.getBean("person");
		
		System.out.println(person.say());
		
		
		Person person2 = (Person)factory.getBean("person");
		
		System.out.println(person == person2);
		
	

  输出结果:

Hello,Tom
true

  说明person和person2是同一个对象

 

如果此时在beans.xml增加属性scope="prototype",

技术图片

则输出结果为false

Hello,Tom
false

  

以上是关于Spring IOC的缓存的主要内容,如果未能解决你的问题,请参考以下文章

Spring之手写SpringMVC5个注解(之IOC,DI优化)了解三级缓存

死磕 Spring----- IOC 之从单例缓存中获取单例 bean

[死磕 Spring 18/43] --- IOC 之parentBeanFactory 与依赖处理

死磕 Spring----- IOC 之parentBeanFactory 与依赖处理

spring IOC之篇六 bean的加载---bean的创建

Spring IOC容器启动流程源码解析——初始化单实例bean阶段