我已经浏览了Spring中的5.5 Bean Scopes部分,我想知道一些实际的例子,在这些例子中,我们使用request
、session
和application
作用域bean的作用域。
我已经看过这篇文章--〉Spring Bean Scopes,但这只是给出了Spring中作用域的定义。
有人能给予一个例子,在银行应用程序或任何在线机票预订应用程序或在线购物应用程序中,我们可以使用请求,会话,应用程序的范围?
我已经浏览了Spring中的5.5 Bean Scopes部分,我想知道一些实际的例子,在这些例子中,我们使用request
、session
和application
作用域bean的作用域。
我已经看过这篇文章--〉Spring Bean Scopes,但这只是给出了Spring中作用域的定义。
有人能给予一个例子,在银行应用程序或任何在线机票预订应用程序或在线购物应用程序中,我们可以使用请求,会话,应用程序的范围?
1条答案
按热度按时间1tuwyuhd1#
我将逐步解释这一点:
Spring Bean的作用域:
| 适用范围|项目名称|
| - -|- -|
| 单例|每个容器创建一个Bean示例(默认情况下)。|
| 原型|每次请求Bean时都会创建新示例。|
| 请求|每个HTTP请求都会创建一个新的Bean示例。|
| 会话|每个HTTP会话的新Bean示例。|
| 应用程序|为每个ServletContext创建一个Bean示例。|
| WebSocket|每个WebSocket有一个Bean示例。|
示例代码:
我已经创建了五个bean来演示范围的所有用例:
单身Bean:
原型Bean:
请求Bean:
会话Bean:
应用程序Bean:
现在,我创建了一个控制器来显示作用域的所有行为:
当您点击端点-
http://localhost:8080/dweller/testbeans
时,将得到以下输出:要检查是否创建了具有请求范围的Bean的新示例,只需刷新/发送新请求。
注意:除此之外,还创建了一个具有原型范围的Bean的新示例,新示例的散列码/地址显示在上面的屏幕截图中。
要检查是否创建了一个具有会话作用域的bean的新示例,只需打开一个incognito窗口,点击相同的url。现在您将看到为一个具有会话作用域的bean创建了一个新示例。
要创建单元集和应用程序范围Bean的新示例,必须重新部署应用程序以查看更改。
我认为这个解释足以开始任何项目,因为我已经解释了一个运行代码的基础。我建议从一个演示项目(银行或票据项目,你提到的)开始,实现所有的范围。
我添加了一个real time internet banking system sequence diagram的链接来实现这个流。只要理解用例,并尝试看看在哪里可以添加作用域。