2009-02-04 18 views
2

我創建了一個自定義的sterotype @Action,Spring已經設法在配置中配置的包掃描中檢測到它。原型範圍的自定義Spring Sterotype註釋?

我想要做的下一步是告訴Spring所有具有@Action的類都應該使用原型而不是Singleton來創建。

我@Action界面如下:

@Target({ElementType.TYPE}) 
@Retention(RetentionPolicy.RUNTIME) 
@Documented 
@Component 
public @interface Action { 
} 

我試着用@Scope(「原型」)來標記它,但似乎並沒有幫助。

是我想要的可能嗎?

肯特

回答

1

上下文:可以使用自定義作用域解析器來配置組件掃描,該自定義作用域解析器實現org.springframework.context.annotation.ScopeMetadataResolver。

我創建了一個自定義作用域解析器,它不僅檢查bean的@Scope註釋(使用org.springframework.context.annotation.AnnotationScopeMetadataResolver的默認解析器),還查找批註的註釋(遞歸)。

但有一點需要注意,遞歸查找註釋可能會進入無限循環,因爲java.lang.annotation.Documented使用java.lang.annotation.Documented進行了註釋。最好保留一張表,指出已經查找了哪個註釋。

+0

@Scope現在在Spring 3中開箱即用 – 2010-08-19 21:24:49

0

不幸的是,與彈簧2.5.X. Your @ Component-annotation描述了bean的角色,而範圍是一個單獨的軸,因此角色和範圍描述符通常必須單獨應用於實現類。當以這種方式查看時,它使一些的意義(編輯:至少它這樣做了幾秒鐘,無論如何)

我不知道這將如何改變我彈簧3.x,這不是太遠遠。似乎還有一些改進的餘地。