我知道 Spring 框架并在其中工作过,并且习惯于ApplicationContext
实例化和加载 bean。
假设我写了以下代码
ApplicationContext context=new ClassPathXmlApplicationContext("appContext.xml");
现在,在上述语句之后,我如何知道定义在 中的 beanappContext.xml
是否已被 Spring 实例化和加载?
注意:我想在访问任何 bean 之前知道它
尝试检索一个:
MyClass myClass = (MyClass) context.getBean("MyBean");
我同意 Reimeus 和 @jbx 的评论。如果没有抛出任何东西,你应该很高兴。但是,如果您真的想确定,请考虑使用记录器,甚至是某种 AOP 在创建 bean 时触发事件。
我想我知道你在做什么,这对我们程序员来说是很难做到的。依赖注入(spring 通过在应用程序上下文中创建 bean 所做的)消除了显式创建 bean 的步骤(即“Thing something = new Thing()”),这可能会令人恐惧,尤其是在早期开发中,当并非一切正常时,你不知道为什么。
您的对象已实例化。你只需要相信 Spring 正在做这件事——它会让你知道它是否不是:D
(还可以查看 BeanFactoryPost 处理器http://javasourcecode.org/html/open-source/spring/spring-3.0.5/org/springframework/beans/factory/config/BeanFactoryPostProcessor.html,它可以让您看到是什么如果你真的想要的话)