我有一个基于Spring2.x的大型应用程序,它有几百个applicationContext.xml文件和几千个bean/bean工厂。
大多数这些XML配置都像default-autowire="byName"一样,有效地打开了自动装配,但实际上只有一小部分bean是自动装配的。大多数bean属性都是显式设置的。
(这是出于历史原因,我想,当你过去不够聪明的时候,你就是这么说的。)
现在我们要彻底去除自动毛。我们相信,实际上只有一小部分豆子是自生的--但我们不知道到底是什么,到底是什么。我的问题是:
,我们怎么才能知道春天到底是什么?
理想情况下,我们需要获得一个bean/属性列表,以便在out配置中显式地注入这些bean/属性。但是在使用调试器进入Spring内部之前,我决定询问SF上的人是否已经解决了类似的任务。
ps。我不想讨论自动装配是好是坏。我们有许多内部技术原因来去除自动装配,仅此而已。
发布于 2011-09-21 07:54:50
您可以尝试在Spring中启用调试日志记录。它在初始化阶段打印了大量信息。我敢打赌自动接线信息也会被打印出来。您只需要找到该消息,然后在应用程序完全初始化之后解析日志文件。
UPDATE:我认为AbstractAutowireCapableBeanFactory负责自动布线逻辑.您可以检查autowireByName方法。它生成以下日志消息,可以在日志文件中搜索:
logger.debug("Added autowiring by name from bean name '" + beanName +
"' via property '" + propertyName + "' to bean named '" + propertyName + "'"); 发布于 2011-09-21 07:52:55
我的猜测是在一个特定的文件中为那个包启用一个记录器(log4j)。
输出所有bean的名称。
https://stackoverflow.com/questions/7496268
复制相似问题