簡體   English   中英

注入的 class 是否必須有 spring 特定注釋?

[英]Is it necessary that the injected class should have a spring specific annotation?

我有一個名為 FilterRequest 的 class 如下

@FieldDefaults(level = AccessLevel.PRIVATE)
@Getter
@Setter
@ToString
public class FilterRequest {
    Filter filter;
}

如您所見,我沒有任何 spring 特定注釋,例如:@Component、@Service、@Repository 或 @Controller

我嘗試在另一個 class 中自動連接相同的 class

    @Autowired
    private FilterRequest filterRequest;

它會起作用嗎?

要自動裝配 object,spring 的實體管理器必須將其識別為 java bean,您可以通過使用@Component對其進行注釋來實現。

這樣你就告訴 spring 負責在每次需要時初始化你的 object

@Service@Repository@Controller擴展@Component

問:它會工作還是不工作?

答:這行不通。 如果它是默認配置並且沒有修改庫,那么這個@Autowired注解沒有任何意義。

如果你想讓它工作,你應該編寫自己的修改注釋及其實現。


這些注釋具有內部關系。 使用這些關系,spring 為您做了一些工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM