Spring 3 bean没有正确连接

时间:2012-11-15 19:35:25

标签: java spring spring-mvc web

我有一个web控制器,我使用

在controller-config.xml中配置
<mvc:annotation-driven />
<context:annotation-config />
<context:component-scan base-package="com.ecommerce.web.controller" />

控制器有@Controller注释,如下所示。

@Controller
public class HomeController

我在依赖项中包含@Autowired注释,但是当我第一次启动应用程序时,我无法在有线对象上设置任何属性。

例如,我有一个storeProfile对象,在调试模式下,我看到有多个属性设置应该。 但是,当我尝试在@Autowried bean上设置一个storeProfile属性时,它仍为null或空字符串!?

如果查看附加的图像,则表明在我跳过该行后,调试器仍然将storeProfile属性显示为null

实际上,有一些依赖项似乎是创建它们(它们不是null和应用程序函数),但我无法在这些对象上设置任何内容。

我在Spring论坛上也问了同样的问题 - 希望能解决这个问题。

非常感谢!

Debugger screen shot

Bean configuration

2 个答案:

答案 0 :(得分:1)

这是因为您正在查看代理的字段,当您拥有<aop:scoped-proxy/>时会创建该字段,如果您为设置值调用getter,则应该看到从代理对象检索的正确值。

答案 1 :(得分:0)

您正在检查的实例是CGLIB代理。

CGLIB将bean子类化,将所有方法调用委托给目标bean。

所以超类的字段仍然存在但未使用。