我有一个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论坛上也问了同样的问题 - 希望能解决这个问题。
非常感谢!
答案 0 :(得分:1)
这是因为您正在查看代理的字段,当您拥有<aop:scoped-proxy/>
时会创建该字段,如果您为设置值调用getter,则应该看到从代理对象检索的正确值。
答案 1 :(得分:0)
您正在检查的实例是CGLIB代理。
CGLIB将bean子类化,将所有方法调用委托给目标bean。
所以超类的字段仍然存在但未使用。