Spring 引导 - Web 应用程序上下文 Bean 范围
Spring Boot - Web Application Context Bean Scope
我有一个 class A
作为豆子。
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,我正在尝试获取一个新的 class 某些特定 WebSocket 通道的实例,假设我正在使用 WebSocket id:1
那么我将拥有该 WebSocket 的 A(某个地址)的实例,对于 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
实例的查找方法
我有一个 class A
作为豆子。
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,我正在尝试获取一个新的 class 某些特定 WebSocket 通道的实例,假设我正在使用 WebSocket id:1
那么我将拥有该 WebSocket 的 A(某个地址)的实例,对于 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
实例的查找方法