singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。
prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new。
Spring bean 默认是单例模式。
单例测试
<-- 配置文件 -->
<bean id="user" class="com.yiRan.pojo.User" scope="singleton">
<property name="uid" value="123"></property>
<property name="uname" value="张三"></property>
</bean>
</beans>
测试类
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
User user1 = (User)context.getBean("user");
System.out.println(user1);
User user2 = (User)context.getBean("user");
System.out.println(user2);
结果
多例测试
<-- 配置文件 -->
<bean id="user" class="com.yiRan.pojo.User" scope="prototype">
<property name="uid" value="123"></property>
<property name="uname" value="张三"></property>
</bean>
</beans>
测试类
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
User user1 = (User)context.getBean("user");
System.out.println(user1);
User user2 = (User)context.getBean("user");
System.out.println(user2);
结果