日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java bean工厂_java-将Service用作“工厂”以返回不同的Bean...

發布時間:2024/9/15 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java bean工厂_java-将Service用作“工厂”以返回不同的Bean... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我想在我的Spring應用程序中使用這種類型的服務類作為“工廠”,以響應提供的枚舉值返回DocumentProcessor的正確實現.

我這樣做是因為我想將每個處理器本身設置為一個組件,并利用自動裝配的優勢,而不是僅在需要每個處理器時創建新實例.

我還沒有真正在其他地方看到它-有人可以告訴我這是否是個壞主意嗎?

所有“ TypeXYZDocumentProcessor”類都是抽象“ DocumentProcessor”基類的擴展.

@Service

public class DocumentProcessorService {

@Autowired

TypeXDocumentProcessor typeXDocumentProcessor;

@Autowired

TypeYDocumentProcessor typeYDocumentProcessor;

@Autowired

TypeZDocumentProcessor typeZDocumentProcessor;

public DocumentProcessor getDocumentProcessor(DocumentType docType) {

switch (docType) {

case TYPE_X:

return typeXDocumentProcessor;

case TYPE_Y:

return typeYDocumentProcessor;

case TYPE_Z:

return typeZDocumentProcessor;

default:

return null;

}

}

}

@Component

public class TypeXDocumentProcessor extends DocumentProcessor {

...

}

public abstract class DocumentProcessor {

...

}

最佳答案

這是我的命題,我使用了Interface而不是抽象類,但是如果您確實需要抽象類,則可以在其上返回.

@Service

public class DocumentProcessorService {

@Autowired

// you can add here for examlpe a @Qualifier("typeXDocumentProcessor"),

// then name your variable whatever you want.

DocumentProcessor typeXDocumentProcessor;

@Autowired

DocumentProcessor typeYDocumentProcessor;

@Autowired

DocumentProcessor typeZDocumentProcessor;

public DocumentProcessor getDocumentProcessor(DocumentType docType) {

switch (docType) {

case TYPE_X:

return typeXDocumentProcessor;

case TYPE_Y:

return typeYDocumentProcessor;

case TYPE_Z:

return typeZDocumentProcessor;

default:

return null;

}

}

}

@Component

public class TypeXDocumentProcessor implements DocumentProcessor {

...

}

@Component

public class TypeYDocumentProcessor implements DocumentProcessor {

...

}

@Component

public class TypeZDocumentProcessor implements DocumentProcessor {

...

}

public interface class DocumentProcessor {

...

}

總結

以上是生活随笔為你收集整理的java bean工厂_java-将Service用作“工厂”以返回不同的Bean...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。