【发布时间】:2014-02-01 03:40:29
【问题描述】:
在 hybris 中,有没有一种简单的方法可以知道某个 Spring bean 正在使用哪个实现类?
我的意思是,我可以通过执行以下操作来覆盖 Bean:
<alias name="myCheckoutFacade" alias="checkoutFacade"/>
<bean id="myCheckoutFacade" class="com.pedra.facades.checkout.impl.MyCheckoutFacadeImpl" scope="tenant" parent="defaultCheckoutFacade">
<property name="commerceCheckoutService" ref="myCommerceCheckoutService"/>
</bean>
...所以现在当 Spring 需要创建一个别名为 checkoutFacade 的 bean 时,实现类将是 MyCheckoutFacadeImpl,而不是在其他一些 xml 配置文件中定义的覆盖 defaultCheckoutFacade。
那么有没有办法在运行时知道哪个实现类被用于某个 Spring bean 定义?我的意思是不必调试代码。
【问题讨论】:
-
调高日志级别。
-
org.springframework 退后一步?
-
您可以使用 Beanshell 做的另一件有趣的事情是在运行时有选择地更改日志级别。 (在生产时要小心——首先在开发机器上尝试这个,因为它会创建一个非常大的日志!)
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.DEBUG);最好在特定记录器上设置级别而不是只设置根,但这只是一个简单的示例。
标签: hybris spring-bean