4.1节当中我将Scope改成了prototype,为啥返回的还是同一对象?

来源:4-1 Spring Bean装配之Bean的定义及作用域的注解实现

星辰Iron

2017-09-09 20:59

package com.imooc.test.beanannotation;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;

import com.imooc.beanannotation.BeanAnnotation;
import com.imooc.test.base.UnitTestBase;

@RunWith(BlockJUnit4ClassRunner.class)
public class TestBeanAnnotation extends UnitTestBase {
	
	public TestBeanAnnotation() {
		super("classpath*:spring-beanannotation.xml");
	}
	
	
	@Test
	public void testScpoe() {
		BeanAnnotation bean = super.getBean("beanAnnotation");
		bean.myHashCode();
		
		bean = super.getBean("beanAnnotation");
		bean.myHashCode();
	}
	
}
package com.imooc.beanannotation;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

//@Component("bean")
@Scope("prototype")
@Component
public class BeanAnnotation {
	public void myHashCode() {
		System.out.println("BeanAnnotation : " + this.hashCode());
	}
	
}

两个bean输出的hashcode是一样的

BeanAnnotation : 2039473569
BeanAnnotation : 2039473569
写回答 关注

1回答

  • qq__7751
    2017-09-10 14:46:20
    已采纳

    应该是对一个store子类@scope(value)吧

    星辰Iron

    已经解决了,我把程序关闭重新启动一下就可以了,估计是缓存的问题。

    2017-09-10 18:15:44

    共 1 条回复 >

Spring入门篇

为您带来IOC和AOP的基本概念及用法,为后续高级课程学习打下基础

268786 学习 · 963 问题

查看课程

相似问题