在Spring3中注入applicationContext的最佳实践

Jav*_*tar 8 spring dependency-injection spring-3 applicationcontext

正如在上面的标题中,我很困惑通过直接@Autowired注释注入applicationContext或在单例spring bean中实现ApplicationContextAware接口之间的优缺点.

您更喜欢哪一种?为什么?谢谢.

Sea*_*oyd 11

实际上,两者都很糟糕.它们都将您的应用程序与Spring框架联系起来,从而颠覆了整个控制反转概念.在理想的世界中,您的应用程序根本不应该知道由ApplicationContext管理.

一旦你选择违反这个原则,你的工作方式并不重要.ApplicationContextAware至少从版本2.0开始的旧版本.@Autowired是一种较新的机制,但它们的工作方式几乎相同.我可能会选择ApplicationContextAware,因为它在语义上明确了它的含义.