对 java 的了解不够,我是否需要在列出时担心并发问题,以及在单个服务器 tomcat 应用程序中更改我的 spring java bean 中的 DTO 对象?
Martlark
问问题
1024 次
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 回答