0

我知道 Spring 框架并在其中工作过,并且习惯于ApplicationContext实例化和加载 bean。

假设我写了以下代码

ApplicationContext context=new ClassPathXmlApplicationContext("appContext.xml");

现在,在上述语句之后,我如何知道定义在 中的 beanappContext.xml是否已被 Spring 实例化和加载?

注意:我想在访问任何 bean 之前知道它

4

2 回答 2

1

尝试检索一个:

MyClass myClass = (MyClass) context.getBean("MyBean");
于 2013-03-27T17:04:10.293 回答
0

我同意 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,它可以让您看到是什么如果你真的想要的话)

于 2013-03-27T17:06:28.900 回答