<?xml version="1.0" encoding="UTF-8"?> <!-- Bean头部 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <bean id="s1" class="com.hisky.test.Student" init-method="init" scope="singleton"> <constructor-arg index="0" value="10"></constructor-arg> </bean> <bean id="s2" class="com.hisky.test.Student" init-method="init" scope="singleton"> <constructor-arg index="0" value="10"></constructor-arg> </bean> </beans>
在Spring的配置文件中设置bean的scope为单例类型,启动没有问题,而且也能取到两个对象。
@ContextConfiguration("classpath:/spring/test.xml")
public class Test extends AbstractTestNGSpringContextTests {
@Autowired
@Qualifier("s1")
Student s1;
@Autowired
@Qualifier("s2")
Student s2;
@org.testng.annotations.Test
public void testname() throws Exception {
System.out.println(s1);
System.out.println(s2);
}
}
输出显示,获取到的是两个不同的对象。所以Spring的单例,意味着对象被调用的时候,不再重新创建。但在JVM中,可以存在同一类的多个bean示例。