xml文件中:
<bean id="person" class="com.spring.bean.Person" scope="prototype">
<property name="age" value="20"></property>
<property name="name" value="小杨"></property>
</bean>
配置类中:
@Configuration //告诉spring这是个配置类
@ComponentScan(value = "com.spring")
public class SpringConfig {
/**
* singleton 单实例的(默认)
* prototype 多实例的
*/
@Scope(value = "singleton")
@Bean
public Person personTest(){
System.out.println("测试该对象什么时候被创建放入ioc容器...");
return new Person("小陈","22");
}
}
当@Scope注解的值为singleton时,在ioc容器启动的时候就调用方法把对象放到ioc容器中,之后每次获取都是直接从ioc(map.get())中拿。
main方法测试:
当@Scope注解的值为prototype时,启动ioc时并不会创建对象,ioc创建完成才会调用方法将对象注入ioc,并且每次获取对象都要重新调用方法