春季@Repository最佳实践
上下文:Web 应用程序
我以前没有使用过Spring,但是根据Spring文档,除非我们将它们声明为。singleton
prototype
- 不使用弹簧:
通常,当调用业务/服务层时,我会实例化新的 DAO。如果它是RESTfull服务,我实例化了几乎所有依赖于调用的对象。
- 带弹簧:
我可以用它来注释数据访问类,也可以用于服务层类。@Repository
@Service
因此,默认情况下,带有上述注释的类。有一个注释,我们可以将它们声明为原型,但似乎没有人这样做。singleton
@Scope
- 无弹簧:每次
new Object();
- 带弹簧:
singleton
我的问题是,
- 我以前使用的方式(每次创建新实例)不正确?
- 如果 是 ,当没有解决此类问题时,它如何处理线程安全?(假设它是由弹簧代理完成的)
@Repository
singleton
- 什么是最佳实践,是否足够或添加会更好?
@Repository
@Scope('prototype')
- 我没有看到任何人使用(根据教程,博客等)。有众所周知的原因吗?
@Scope('prototype')
@Repository
- 如果我的 DAO 类由多个大量具有非常高频率的线程访问,该怎么办?(这是我最关心的)
谢谢