SingletonBean
package main.com.lee.c_scope; /** * 單例bean * * @author Lynch * */ public class SingletonBean { public SingletonBean() { System.out.println("單例bean構造了。。。"); } }
PrototypeBean
package main.com.lee.c_scope; /** * 多例bean * * @author Lynch * */ public class PrototypeBean { public PrototypeBean() { System.out.println("多例bean構造了..."); } }
applicationContext.xml
<!-- Bean的作用域 --> <bean id="singletonBean" class="main.com.lee.c_scope.SingletonBean" scope="singleton" /> <bean id="prototypeBean" class="main.com.lee.c_scope.PrototypeBean" scope="prototype" />
Test
package main.com.lee.c_scope; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Bean的作用域小測 * * @author Lynch * */ public class BeanScopeTest { @Test public void demo1() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); // 單例bean SingletonBean singletonBean1 = (SingletonBean) applicationContext.getBean("singletonBean"); SingletonBean singletonBean2 = (SingletonBean) applicationContext.getBean("singletonBean"); System.out.println(singletonBean1); System.out.println(singletonBean2); // 多例bean PrototypeBean prototypeBean1 = (PrototypeBean) applicationContext.getBean("prototypeBean"); PrototypeBean prototypeBean2 = (PrototypeBean) applicationContext.getBean("prototypeBean"); System.out.println(prototypeBean1); System.out.println(prototypeBean2); } }
out
單例bean構造了。。。 main.com.lee.c_scope.SingletonBean@170bea5 main.com.lee.c_scope.SingletonBean@170bea5 多例bean構造了... 多例bean構造了... main.com.lee.c_scope.PrototypeBean@f47396 main.com.lee.c_scope.PrototypeBean@d0af9b