[英]Spring Boot - Web Application Context Bean Scope
我有一個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
那么我將擁有該 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 的對象時,你每次 new 都會創建 A 的對象。 或者將 A 的范圍作為原型或請求,每次被詢問時都會創建新的,以及創建 A 實例的查找方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.