我正在使用 spring 框架进行依赖注入(inject),但我根本无法确定我是否正确使用了它。想象一下这个案例 - 它不是真实的,只是为了解释我的问题。我有一个 spring boot 应用程序,它与 websocket 连接到某些端点。我有一个类,它具有该客户端的所有可用方法,存储客户端等所需的所有数据,比方说 Client
。然后我有一个静态列表,其中包含所有连接的客户端 List<Client>
。我需要 Client
类是 Spring 托管 bean,因为我需要使用 @Service
以及所有其他 spring 功能( @Value
、 @Async
)等。
问题是,Spring bean 是单例吗?我怎样才能从一个应该由 spring 管理的类实例化对象,但另一方面应该有这个类的多个实例?我无法使用new
对吗?`
最佳答案
Spring 创建的对象不一定是单例;这只是默认设置。 Spring 支持多种不同的选项来确定何时创建新对象以及何时回收旧对象。您应该查看“范围”属性的文档并确定最适合您的应用程序的属性。
或者,您可以使用 new 自己创建对象,然后请求 Spring 使用 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-atconfigurable 中描述的技术为您配置它。
关于java - 依赖注入(inject)和多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198879/