对java不够了解,我是否需要在列出时担心并发问题,并在单个服务器tomcat应用程序中更改spring java bean中的DTO对象?
答案 0 :(得分:4)
简而言之,是的。 Spring Bean通常可以由多个线程共享。特别注意Spring Bean中的成员变量。如果它们是可变的,要么使它们不可变,要么用锁(例如同步),ThreadLocal等协调访问。
答案 1 :(得分:0)
这是你需要问自己的问题。有两种线程可以访问相同的 DTO吗?我想在任何理智的架构中都没有。
Spring bean本身通常是单例(当没有配置时),并且应该是线程安全的。
如果所有bean都接收DTO作为参数,则返回新创建的DTO,并且这些bean的所有客户端都不会保留引用,DTO不应该是一个问题。至少从高层面来看。
但是,您应该阅读有关java并发的内容。如果你有机会我会推荐Goetz's book。
最后,回到当天,我记得Rod Johnson(THE springsource mastermind)说DTO是EVIL。请花一些时间来谷歌“DTO邪恶”,并让你的想法。