栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring @Repository最佳做法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring @Repository最佳做法

您是正确的-在 Spring World中,大多数bean是单例的。

  1. 我以前使用的方式(每次创建新实例)都不正确?

这是不正确的,因为它可以工作。问题在于,您在每个请求上实例化一个DAO的新实例-在某些情况下可能会很昂贵,而且无论如何它都没有任何意义-
为什么您需要一堆DAO实例?另一方面,Spring不仅会创建一个单例对象,而且还会将DAO注入服务或其他DAO的etcie中,从而为您完成了很多工作

  1. 如果@Repository是singleton,那么在没有解决此类问题时,它将如何处理线程安全性?(假设它是由spring代理完成的)

在编写@Repository bean时,通常会在其中注入 DataSourceEntityManager
。DataSource.getConnection()方法应该是线程安全的。对于 EntityManagerSpring
将注入一个代理,该代理对于不同的线程的行为将有所不同,即不同的线程不会共享同一JPA会话。

  1. 最佳实践是什么,@Repository足够还是添加@Scope(’prototype’)会更好?

最佳实践(或者说是最广泛使用的方法)是仅使用@Repository

  1. 我看不到有人将@Scope(’prototype’)与@Repository结合使用(根据教程,博客等)。有众所周知的原因吗?

原因是创建@Repository Bean的多个实例没有任何好处

  1. 如果我的DAO类被多个非常高频率的线程访问,该怎么办?(这是我最关心的那个)

同样,这里的singleton比为每个请求创建一个新对象更好。只是避免冗余同步,这样您的线程就不会在某些监视器上阻塞



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435517.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号