Wicket的@SpringBean
註釋是如何工作的?它在運行時是否使用反射?它是否使編譯器注入一些代碼?或者是什麼?Wicket的@SpringBean註釋如何工作?
回答
Spring在運行時使用類加載器和ASM來查找所有帶註釋的類。
您可以configure其中春季應搜索豆類:
<context:component-scan base-package="some.package.to.start.from"/>
這內部使用的ClassPathBeanDefinitionScanner它將使用PathMatchingResourcePatternResolver找到類和ASM-基於MetadataReader閱讀註釋。
雖然這個機制與'@ SpringBean'沒有任何關係,它是一個Wicket構造,而不是Spring構造。 – skaffman 2009-12-23 13:16:52
我從未使用Wicket。我認爲他的意思是@Component等註釋。很高興知道。 – 2009-12-23 13:35:41
@SpringBean
作品使用Wicket的underlying Injector mechanism。當你實例化一個Wicket組件時,Wicket的組件基類的構造函數反省了實例化的類,尋找@SpringBean
註解。如果找到bean,那麼Wicket爲spring bean生成一個代理並將其注入到組件的字段中。這是Wicket的相當於Spring的@Autowired
註釋,效果類似。
然而,它與Spring自己的上下文/類路徑掃描功能(例如@Component
)沒有任何關係,它是關於自動發現什麼是和不是bean的,而與任何有關的事情有關接線。
要使用這一個,只需要將SpringComponentInjector偵聽器添加到Wicket應用程序來偵聽組件實例。 – Matt 2010-01-09 01:09:17
標有註解@SpringBean的類必須具有的一種:
- 甲無參數構造
- 與無參數構造
- 甲超類實現一個接口
如果這些條件不符合,將會拋出異常,因爲Wicket將無法代理該類。
這是有用的信息,但不是真正的問題的答案。作爲對這個問題或其他答案的評論可能會更好。 – 2012-10-26 23:59:05
- 1. wicket @SpringBean無法創建bean
- 2. 使用@SpringBean將ApplicationContext注入Wicket組件失敗
- 3. @autowired註釋如何工作?
- 4. Wicket的AjaxFallbackOrderByBorder如何工作?
- 5. Spring註釋@SessionAttributes是如何工作的
- 6. 用戶註釋如何工作?
- 7. @ wicket項目中的@component spring註釋?
- 8. Jersey - 注入的@Context註釋。它是如何工作的?
- 9. 組註釋不會工作
- 10. 註釋列codefirst不工作
- 11. @Min註釋不工作
- 12. @Click不工作android註釋
- 13. 如何在Springbean中注入完整的屬性文件
- 14. Hibernate註釋。如何註釋?
- 15. Spring的@Scheduled註釋是如何工作的?
- 16. C#中的Excel工作表註釋#
- 17. Mockito Mock如何在我的測試中工作沒有註釋
- 18. 有關如何在Emacs中工作時註釋PDF的建議?
- 19. 如何在註釋中使用註釋?
- 20. 解釋Jint如何工作
- 21. Slf4j註釋在Grails中工作嗎?
- 22. Android註釋與Android工作室
- 23. Hibernate驗證註釋不工作
- 24. @Secured註釋工作,但@PostAuthorize與PermissionEvaluator不
- 25. 春3.0 @Scheduled註釋工作不正常
- 26. Grafana註釋工作不一致
- 27. 條件註釋不IE11工作
- 28. MVC數據註釋FileExtensions不工作
- 29. @事務註釋不按預期工作
- 30. IntelliJ Spring Gradle項目註釋不工作
Spring API中沒有'@ SpringBean'註釋。 Wicket有一個,但是,你正在使用什麼? – skaffman 2009-12-23 12:08:33
啊,我不知道 - 是的,我正在使用Wicket。我會改變問題和標籤來反映這一點。謝謝。 – Tarquila 2009-12-23 13:08:23
@Tququila - 我認爲在春季解決這個問題更容易。併爲Wicket添加一個新的。 – 2009-12-23 13:38:22