为什么Spring的AppplicationContext.getBean被认为是不好的?
我问了一个一般性的Spring问题:自动浇注Spring Beans,并让多人回答说应该尽可能避免调用Spring'为什么?ApplicationContext.getBean()
我还应该如何访问我配置Spring创建的bean?
我在一个非Web应用程序中使用Spring,并计划访问LiorH所描述的共享对象。ApplicationContext
修正案
我接受下面的答案,但这是Martin Fowler的另一个观点,他讨论了依赖注入与使用服务定位器(本质上与调用包装器相同)的优点。ApplicationContext.getBean()
Fowler指出,“使用服务定位器,应用程序类通过向定位器发送消息显式请求它[服务]。使用注入时,没有显式请求,服务出现在应用程序类中 - 因此控制反转。控制反转是框架的一个共同特征,但这是有代价的。当您尝试调试时,它往往难以理解并导致问题。因此,总的来说,除非我需要它,否则我宁愿避免它(控制反转)。这并不是说这是一件坏事,只是我认为它需要证明自己在更直接的替代方案上。"