Spring @Controller 生命周期

发布于 2024-11-01 08:42:20 字数 198 浏览 3 评论 0原文

我是 Spring MVC 的新手,想知道它如何处理请求,更具体地说:

  1. 我想知道 Spring 如何处理请求 @Controller的生命周期涉及 Servlet 的那个?
  2. 我也想变得更好 了解什么是最好的 多线程的实践 环境(例如在 Servlet 中, 类属性是否可见 多个 HTTP 请求作为对象 从池中重复使用)?

I am new to Spring MVC and would like to know how it handles requests, more specifically:

  1. I would like to know how a Spring
    @Controller's life cycle relates to
    that of a Servlet?
  2. I would also like to better
    understand what are the best
    practices for multi-threaded
    enviornments (e.g. like in Servlets,
    are class attributes visible to
    multiple HTTP requests as objects are
    reused from the pool)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滿滿的愛 2024-11-08 08:42:20

控制器(与任何 spring bean 一样)都有一个范围。

最好的情况是你的控制器应该是singleton范围。在这种情况下,它非常像 servlet,并且:

  • 它们仅在应用程序上下文启动期间创建一次(并在上下文销毁时销毁),
  • 您不应该使用任何实例变量(因为这不是线程安全的)

如果您的控制器范围是requestsession,那么您可以拥有实例变量,并且在每个新请求/会话上创建控制器的实例。

A controller (as any spring bean) has a scope.

At best your controllers should be of scope singleton. In that case it is very much like servlets, and:

  • they are created only once, during the application context startup (and destroyed when the context is destroyed)
  • you should not use any instance variables (as this is not thread-safe)

If your controller scope is request or session, then you can have instance variables, and an instance of the controller is created on each new request/session.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文