当使用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在测试时注入依赖项。好简单。