程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Spring基礎—— Bean 的作用域,spring基礎bean

Spring基礎—— Bean 的作用域,spring基礎bean

編輯:JAVA綜合教程

Spring基礎—— Bean 的作用域,spring基礎bean


一、在 Spring Config 文件中,在 <bean> 元素的 scope 屬性裡設置 Bean 的作用域。默認為 singleton ,單例的。

二、在不引入 spring-web-4.0.0.RELEASE.jar 包的情況下,scope 屬性只有兩個值:singleton 和 prototype。

1.singleton(單例)

Spring 為每個在 IOC 容器中聲明的 Bean 創建一個實例,整個 IOC 容器范圍都能共用。通過 getBean() 返回的對象為同一個對象。

如:

<bean class="com.nucsoft.spring.bean.Employee" id="employee" p:empName="emp01" p:age="12"/>
@Test
public void test01() {
  Employee employee = ctx.getBean(Employee.class);
  System.out.println(employee);

  Employee employee2 = ctx.getBean(Employee.class);
  System.out.println(employee2);
}

控制台輸出:

com.nucsoft.spring.bean.Employee@1ed71887
com.nucsoft.spring.bean.Employee@1ed71887

2.prototype(原型),每次調用 getBean() 都會返回一個新的實例

<bean class="com.nucsoft.spring.bean.Employee" id="employee" p:empName="emp01" p:age="12" scope="prototype"/>
@Test
 public void test01() {
  Employee employee = ctx.getBean(Employee.class);
  System.out.println(employee);

  Employee employee2 = ctx.getBean(Employee.class);
  System.out.println(employee2);
}

控制台輸出:

com.nucsoft.spring.bean.Employee@652e3c04
com.nucsoft.spring.bean.Employee@3e665e81

 

這裡不對 web 環境的 Bean 的作用域進行討論,事實上,我們常用到的也就這兩種。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved