天天看點

spring Bean的作用域--單例&原型

springBean的作用域

  • ​​1.Bean的作用域​​
  • ​​2.常用的作用域​​
  • ​​3.例子​​
  • ​​3.1建立一個空的spring項目​​
  • ​​3.2建立java檔案​​
  • ​​3.3xml檔案​​
  • ​​3.4運作結果​​
  • ​​4.總結​​

1.Bean的作用域

1.單例-singleton

2.原型-prototype

3.request

4.session

5.globalSession

6.websocket

2.常用的作用域

單例和原型是通用的作用域,其餘的在網絡程式設計中能夠用到。

3.例子

3.1建立一個空的spring項目

spring Bean的作用域--單例&原型

3.2建立java檔案

spring Bean的作用域--單例&原型
package bean;

public class Bean {

  public void say(){
    System.out.println(this);
  }
  
}
      
package client;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import bean.Bean;

public class Main {

  public static void main(String[] args) {

    String path = "resource/beans-";
    @SuppressWarnings("resource")
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
        path + "singleton.xml");
    Bean bean = (Bean)applicationContext.getBean("bean");
    bean.say();
    bean = (Bean)applicationContext.getBean("bean");
    bean.say();
    applicationContext = new ClassPathXmlApplicationContext(path
        + "prototype.xml");
    bean = (Bean)applicationContext.getBean("beanp");
    bean.say();
    bean = (Bean)applicationContext.getBean("beanp");
    bean.say();
  }

}
      

3.3xml檔案

beans-prototype.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="beanp" class="bean.Bean" scope="prototype">
  </bean>
</beans>      
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="bean" class="bean.Bean" scope="singleton">
  </bean>
</beans>      

3.4運作結果

bean.Bean@ae45eb6
bean.Bean@ae45eb6
bean.Bean@6a4f787b
bean.Bean@685cb137      

4.總結