當使用AspectJ時,爲什麼使用@Component over @Configurable。可配置與組件與Spring和AspectJ
我已經爲@Transactional支持,自我調用的方面以及注入到JPA實體的Spring和AspectJ設置。這很好。
我對大多數需要注入的類使用@Component,因此要麼將它們注入到它們的依賴項中。或者,當我不能時,注入ApplicationContext,然後使用getBean()作爲最後的手段。而且,我僅爲需要注入的JPA實體(Hibernate)保留@Configurable。我還開始使用@Configurable進行jUnit測試,以便簡化寫作測試。這也很好。
但我很好奇。如果AspectJ現在使用@Configurable註解自動注入(beanization)任何東西,不管它是如何構造的; getBean(),new(),@Autowired。爲什麼我不能只爲所有的bean使用@Configurable?然後,我可以完全取消應用程序上下文和getBean(),只是new()我不能注入的任何類。
我意識到我沒有提到XML bean配置。我不迴避,但這個項目並不需要任何。我只是構造函數或setter在測試時注入依賴項。好簡單。