3

我知道在 servlet 中有很多范围(请求、会话……)。

  1. 它与 Spring MVC 有何关联?
  2. 如何使用 Spring 样式使用需要的范围?

我不想直接使用HttpRequestand HttpResponse

4

3 回答 3

1

• Singleton:这将 bean 定义范围限定为每个 Spring IoC 容器的单个实例(默认)。

• 原型:这将单个bean 定义限定为具有任意数量的对象实例。

Message aMessage; //object

// singleton bean scope 
aMessageA = new Message();
aMessageA = (Message) applicationContext.getBean("message");
aMessageA.setText("message1 :D");
System.out.println(aMessageA.getText());

aMessageB = new Message();
aMessageB = (Message) applicationContext.getBean("message");
System.out.println(aMessageB.getText());
// result will be the same for both objects because it's just one instance.


// Prototype bean scope. scope="prototype"
aMessageA = new Message();
aMessageA = (Message) applicationContext.getBean("message");
aMessageA.setText("message :D");
System.out.println(aMessageA.getText());

aMessageB = new Message();
aMessageB = (Message) applicationContext.getBean("message");
System.out.println(aMessageB.getText());

/* first object will print the message, but the second one won't because it's a new instance.*/
于 2013-08-14T18:46:06.107 回答
0

您可以配置在配置中连接的 bean 的范围

示例配置:

<bean id="bean-id-name" class="abc.xyz.classname" scope="singleton">

关于spring bean范围的参考: http: //static.springsource.org/spring/docs/3.2.4.RELEASE/spring-framework-reference/html/beans.html#beans-factory-scopes

于 2013-08-14T18:48:52.433 回答
0

Spring MVC 提供了更多的范围,如请求、会话、全局会话。

您可以注释 spring bean 以使用正确的范围。请按照以下链接查找更多信息。

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html#beans-factory-scopes

于 2013-08-14T18:58:59.820 回答