【问题标题】:Spring Framework MVC "concurrency"?Spring Framework MVC“并发”?
【发布时间】:2013-04-28 09:47:27
【问题描述】:

AFAIK,Spring bean(版本 3 及更高版本),如果未指定,都是单例。因此,我担心的是,例如,当使用@Repository(在访问数据库资源的类中)或@Service(在执行验证和业务逻辑的类中)时,这些对象将可供应用程序中的所有用户使用万一并发访问?

提前谢谢...

【问题讨论】:

    标签: spring spring-mvc concurrency


    【解决方案1】:

    是的,这些对象将被同时访问。所以它们必须以线程安全的方式编码。但这很简单,因为它们通常是无状态的,除了它们在启动时由 Spring 注入的依赖项。

    【讨论】:

    • 那么,他们不会是“单身人士”吗?我的意思是,我只是希望它们不会,因为在多用户应用程序中,这些类将为每个不同的用户操作不同的值,因此它们将是单例是没有意义的。但是,正如我之前所说,AFAIK,例如用@Repository@Service 注释一个类,默认情况下将它们设为单例......所以这是我主要关心的问题:如果每次我调用/调用它们,我都会有不同的实例……还是同一个实例?
    • 默认情况下它们是单例。所以你每次都会得到一个实例。但这没关系,因为它们不访问任何共享状态。存储库执行数据库查询并将数据返回给服务。服务使用这些数据并将它们返回给图层。一切都在局部变量中,因此您可以让同一个单例同时处理多个客户端请求。
    • 您能否就这个问题给 cmets 一个问题? stackoverflow.com/questions/30171027/…
    猜你喜欢
    • 1970-01-01
    • 2011-06-10
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2014-12-31
    • 2011-03-01
    • 1970-01-01
    相关资源
    最近更新 更多