日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2

wkspring教程

Spring Bean 作用域

閱讀 (2176)

Bean 的作用域

當(dāng)在 Spring 中定義一個 時,你必須聲明該 bean 的作用域的選項。例如,為了強制 Spring 在每次需要時都產(chǎn)生一個新的 bean 實例,你應(yīng)該聲明 bean 的作用域的屬性為 prototype。同理,如果你想讓 Spring 在每次需要時都返回同一個bean實例,你應(yīng)該聲明 bean 的作用域的屬性為 singleton

Spring 框架支持以下五個作用域,如果你使用 web-aware ApplicationContext 時,其中三個是可用的。

作用域描述
singleton該作用域?qū)?bean 的定義的限制在每一個 Spring IoC 容器中的一個單一實例(默認)。
prototype該作用域?qū)我?bean 的定義限制在任意數(shù)量的對象實例。
request該作用域?qū)?bean 的定義限制為 HTTP 請求。只在 web-aware Spring ApplicationContext 的上下文中有效。
session該作用域?qū)?bean 的定義限制為 HTTP 會話。 只在web-aware Spring ApplicationContext的上下文中有效。
global-session該作用域?qū)?bean 的定義限制為全局 HTTP 會話。只在 web-aware Spring ApplicationContext 的上下文中有效。

本章將討論前兩個范圍,當(dāng)我們將討論有關(guān) web-aware Spring ApplicationContext 時,其余三個將被討論。

singleton 作用域:

如果作用域設(shè)置為 singleton,那么 Spring IoC 容器剛好創(chuàng)建一個由該 bean 定義的對象的實例。該單一實例將存儲在這種單例 bean 的高速緩存中,以及針對該 bean 的所有后續(xù)的請求和引用都返回緩存對象。

默認作用域是始終是 singleton,但是當(dāng)僅僅需要 bean 的一個實例時,你可以在 bean 的配置文件中設(shè)置作用域的屬性為 singleton,如下所示:

<!-- A bean definition with singleton scope -->
<bean id="..." class="..." scope="singleton">
    <!-- collaborators and configuration for this bean go here -->
</bean>

例子

我們在適當(dāng)?shù)奈恢檬褂?Eclipse IDE,然后按照下面的步驟來創(chuàng)建一個 Spring 應(yīng)用程序:

步驟描述
1創(chuàng)建一個名稱為 SpringExample 的項目,并且在創(chuàng)建項目的 src 文件夾中創(chuàng)建一個包 com.tutorialspoint
2使用 Add External JARs 選項,添加所需的 Spring 庫,在 Spring Hello World Example 章節(jié)解釋。
3com.tutorialspoint 包中創(chuàng)建 Java 類 HelloWorldMainApp
4src 文件夾中創(chuàng)建 Beans 配置文件 Beans.xml
5最后一步是創(chuàng)建的所有 Java 文件和 Bean 配置文件的內(nèi)容,并運行應(yīng)用程序,解釋如下。

這里是 HelloWorld.java 文件的內(nèi)容:

package com.tutorialspoint;
public class HelloWorld {
   private String message;
   public void setMessage(String message){
      this.message  = message;
   }
   public void getMessage(){
      System.out.println("Your Message : " + message);
   }
}

下面是 MainApp.java 文件的內(nèi)容:

package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      HelloWorld objA = (HelloWorld) context.getBean("helloWorld");
      objA.setMessage("I'm object A");
      objA.getMessage();
      HelloWorld objB = (HelloWorld) context.getBean("helloWorld");
      objB.getMessage();
   }
}

下面是 singleton 作用域必需的配置文件 Beans.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-3.0.xsd">

   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld" 
      scope="singleton">
   </bean>

</beans>

一旦你創(chuàng)建源代碼和 bean 配置文件完成后,我們就可以運行該應(yīng)用程序。如果你的應(yīng)用程序一切都正常,將輸出以下信息:

Your Message : I'm object A
Your Message : I'm object A

prototype 作用域

如果作用域設(shè)置為 prototype,那么每次特定的 bean 發(fā)出請求時 Spring IoC 容器就創(chuàng)建對象的新的 Bean 實例。一般說來,滿狀態(tài)的 bean 使用 prototype 作用域和沒有狀態(tài)的 bean 使用 singleton 作用域。

為了定義 prototype 作用域,你可以在 bean 的配置文件中設(shè)置作用域的屬性為 prototype,如下所示:

<!-- A bean definition with singleton scope -->
<bean id="..." class="..." scope="prototype">
   <!-- collaborators and configuration for this bean go here -->
</bean>

例子

我們在適當(dāng)?shù)奈恢檬褂?Eclipse IDE,然后按照下面的步驟來創(chuàng)建一個 Spring 應(yīng)用程序:

步驟描述
1創(chuàng)建一個名稱為 SpringExample 的項目,并且在創(chuàng)建項目的 src 文件夾中創(chuàng)建一個包com.tutorialspoint
2使用 Add External JARs 選項,添加所需的 Spring 庫,解釋見 Spring Hello World Example 章節(jié)。
3com.tutorialspoint 包中創(chuàng)建 Java 類 HelloWorldMainApp
4src 文件夾中創(chuàng)建 Beans 配置文件Beans.xml
5最后一步是創(chuàng)建的所有 Java 文件和 Bean 配置文件的內(nèi)容,并運行應(yīng)用程序,解釋如下所示。

這里是 HelloWorld.java 文件的內(nèi)容:

package com.tutorialspoint;

public class HelloWorld {
   private String message;

   public void setMessage(String message){
      this.message  = message;
   }

   public void getMessage(){
      System.out.println("Your Message : " + message);
   }
}

下面是 MainApp.java 文件的內(nèi)容:

package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      HelloWorld objA = (HelloWorld) context.getBean("helloWorld");
      objA.setMessage("I'm object A");
      objA.getMessage();
      HelloWorld objB = (HelloWorld) context.getBean("helloWorld");
      objB.getMessage();
   }
}

下面是 prototype 作用域必需的配置文件 Beans.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-3.0.xsd">

   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld" 
      scope="prototype">
   </bean>

</beans>

一旦你創(chuàng)建源代碼和 Bean 配置文件完成后,我們就可以運行該應(yīng)用程序。如果你的應(yīng)用程序一切都正常,將輸出以下信息:

Your Message : I'm object A
Your Message : null
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲综合色一区 | 久久国产精品-国产精品 | 免费视频亚洲 | 一区二区视频观看 | 国产女主播在线视频 | 色婷婷国产 | 亚洲区第一页 | 永久免费av网站 | 亚洲iv一区二区三区 | 精品国产乱码久久久久久蜜柚 | 国产日韩欧美在线影视 | 国产视频 一区二区 | 午夜伦情电午夜伦情电影如如视频 | 国产精品美女一区二区三区 | 亚欧洲精品视频在线观看 | 在线免费观看亚洲 | 高清视频一区 | 国产精品一二三区 | 一区视频在线 | 三区在线 | 综合久 | 91看片网页版 | 日韩久久一区二区 | 国产精品久久久久久久久久久久久 | 日韩国产精品久久久久久亚洲 | 国产精品欧美在线观看 | 天天看毛片| 欧美日韩亚洲一区 | www.色网| 成人av久久 | 免费在线观看毛片 | 自拍偷拍福利视频 | 一区二区三区高清不卡 | 国产99精品 | 欧美成人视屏 | 国产精品影院在线观看 | 国产一级黄色影片 | 国产日韩精品久久 | 91精品国产综合久久小美女 | 二区三区在线观看 | 毛片视频播放 |