struts 2整合spring要注意的问题(二)


在 struts2_spring_plugin.xml配置文件中有一个strus.objectFactory.spring.autoWire 属性 默认值为name   也就是说你不想装载,它都会找个id为name的bean给你装载上(这个插件在产生Action的时候它会自动的把action的属性给注入进来,默认是按name注入),比如说:

  @Resource(name="userManager")  
public void setUm(UserManager um) {
this.um = um;
}

如果你没加前面的@Resource(name="userManager")  ,它也会自动去给你找一个id是um的bean给你注入。


还有一点就是,若已经通过name自动匹配找了一个bean那么不论在@component(name=“xxxx”)的name配什么都不会再去找了。


解决问题:属性名不要和其他无关的bean的id相同,比如说UserAction里面有个User(SetUser())那么这个UserAction就不要叫 @Resource(name="user")了,可以改为

  @Resource(name="useraction")  ,也就是说Action的id不要与里面的属性重名

你可能感兴趣的:(spring,struts2,插件)