Spring Bean Scopes && Instantiating a container

singleton: (Default) Scopes a single bean definition to a single object instance per Spring IoC container.
prototype: Scopes a single bean definition to any number of object instances.
 
Spring's concept of a singleton bean differs from the Singleton pattern as defined in the Gang of Four (GoF) patterns book. The GoF Singleton hard-codes the scope of an object such that one and only one instance of a particular class is created per ClassLoader. The scope of the Spring singleton is best described as per container and per bean. This means that if you define one bean for a particular class in a single Spring container, then the Spring container creates one and only one instance of the class defined by that bean definition. 
 
request: Scopes a single bean definition to the lifecycle of a single HTTP request; that is, each HTTP request has its own instance of a bean created off the back of a single bean definition. Only valid in the context of a web-aware Spring ApplicationContext.
session: Scopes a single bean definition to the lifecycle of an HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext.
global session:Scopes a single bean definition to the lifecycle of a global HTTP Session. Typically only valid when used in a portlet context. Only valid in the context of a web-aware Spring ApplicationContext.

ClassPathResource resource = new ClassPathResource("spring/ApplicationContextTest.xml");

Resource resource = new FileSystemResource("ApplicationContextTest.xml");
BeanFactory factory = new XmlBeanFactory(resource);
UserAction user = (UserAction)factory.getBean("user");
 
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"spring/ApplicationContextTest.xml"});
ApplicationContext context = new  FileSystemXmlApplicationContext("ApplicationContextTest.xml");
BeanFactory factory = (BeanFactory) context;
 
FileSystemXmlApplicationContext支持方法destroy()——extends AbstractApplicationContext
相關文章
相關標籤/搜索