4

对 java 的了解不够,我是否需要在列出时担心并发问题,以及在单个服务器 tomcat 应用程序中更改我的 spring java bean 中的 DTO 对象?

4

2 回答 2

4

简而言之,是的。Spring Beans 通常可以被多个线程共享。请特别注意 Spring Bean 中的成员变量。如果它们是可变的,要么使它们不可变,要么通过锁(例如同步)、ThreadLocal 等来协调访问。

于 2009-03-27T17:01:43.287 回答
0

这是你需要问自己的问题。有没有办法让两个线程访问同一个DTO?我想在任何健全的架构中都没有。

Spring bean 本身通常是单例的(如果没有进行其他配置),并且应该是线程安全的。

如果所有 bean 都接收 DTO 作为参数,返回新创建的 DTO,并且这些 bean 的所有客户端都没有保留引用,那么 DTO 应该不是问题。至少从高水平的角度来看。

但是,您应该阅读有关 java 并发的内容。如果有机会,我会推荐Goetz 的书。

最后,在过去,我记得 Rod Johnson(springsource 策划者)说 DTO 是邪恶的。请花一些时间在谷歌上搜索“DTO evil”并做出决定。

于 2009-03-27T16:28:31.357 回答