【发布时间】:2020-01-27 14:16:29
【问题描述】:
我有一个类 A 作为 bean。
public class A
{
// constructors
// properties
// getters and setters
}
春季开机配置:
@Configuration
public class AConfig{
@Bean
@Scope(scopeName = WebApplicationContext.SCOPE_APPLICATION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public A getA() {
return new A();
}
}
我现在正在使用 WebSocket,我正在尝试为某些特定的 WebSocket 通道获取一个新的 A 类实例,假设我正在使用 WebSocket id:1,那么我将拥有 A 的实例(某个地址)对于那个 WebSocket,对于 WebSocket id:2 我将有另一个 A 实例(其他地址),我可以在应用程序中使用它。我怎样才能做到这一点?在这种情况下,我想我必须向服务器发送一些 ID 来识别我正在寻找的 spring bean。
【问题讨论】:
-
您是否有理由不简单地使用 WebSocket 范围 (baeldung.com/spring-bean-scopes)?
-
@Smutje,我找不到任何关于如何与 Websocket 一起实现此功能的具体信息。有什么帮助吗?
-
请确认我的理解:您希望其他类中的A类bean说WebSocketTest类,并且在WebSocketTest类的每个实例中都有一个具有不同不同状态(不同地址)的A类单独bean。
-
你是什么意思“如何与Websocket一起实现”?您检查过链接并尝试过吗?
-
@Jitendra,是的!例如,范围
scopeName = WebApplicationContext.SCOPE_APPLICATION在不同的实例中工作正常,但它在整个应用程序中创建了一个 bean。现在我想当我收到一个新的 WebSocket 连接时构建一个新的类的 bean,比如说A,我可以从不同的客户端访问它。
标签: java spring spring-boot websocket javabeans