我有一个类A
作为bean。
public class A
{
// constructors
// properties
// getters and setters
}
Spring启动配置:
@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。
**代替自动装配,我们应该使用构造函数参数使其松散耦合**
class MessageSocketDemo {
private A a;
public MessageSocketDemo(A a) {
this.a = a;
}
public MessageSocketDemo() {
a = new A("address");
}
}
class A {
String address;
public A(String add) {
address = add;
}
}
因此,当您创建MessageSocketDemo的对象时,每次创建A的对象时就创建一个。或将A的作用域作为原型或请求,将在每次询问时将其创建为新对象,并提供查找方法以创建A的实例