Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的项目中有 1 个 @Controller bean 和该控制器调用的 2 个 @Service bean。
使用 2 个不同的 @Repository bean 进行持久化的服务。
我的问题是:
我的服务器即将同时收到数百个调用,我上面描述的所有 bean 都是 scope="singleton",这不是“尴尬”吗?我应该改用“原型”吗?或者也许春天会自动?
我认为在这两种情况下,您将拥有相同数量的对象。
bean 部署的非单例原型范围导致每次对特定 bean 发出请求时都会创建一个新的 bean 实例(也就是说,它被注入另一个 bean 或通过编程的 getBean() 方法请求调用容器)。根据经验,您应该对所有有状态的 bean 使用原型范围,而对无状态 bean 应该使用单例范围。
在 Spring 默认情况下,所有 bean 都是“单例”,并且在大多数情况下应该是。