使用Struts2的@Autowired Spring注释
我是Spring的新手,我尝试了解@Autowired
注释如何与struts2动作一起工作。这是我的情况:
public class UserBean { private String userName;
private int userAge;
private String userGender;
private String userJob;
private String[] userHobbies;
/*Getters and Setters */
}
@Componentpublic class UserAction extends ActionSupport implements ModelDriven<UserBean> {
@Autowired
private UserBean userBean;
public String execute() {
return SUCCESS;
}
public String addUser() {
return SUCCESS;
}
public UserBean getModel() {
return userBean;
}
public UserBean getUserBean() {
return userBean;
}
public void setUserBean(UserBean userBean) {
this.userBean = userBean;
}
}
<context:annotation-config /><context:component-scan base-package="com.gmail.amato.giorgio.*" />
<bean id="userAction" class="com.gmail.amato.giorgio.UserAction"></bean>
<bean id="userBean" class="com.gmail.amato.giorgio.UserBean"></bean>
现在我的程序很好,并且没有任何错误:我可以看到一个表格,填写该表格,然后将结果返回给我。
我的问题是:如果使用@Autowired
批注,为什么必须为userBean编写bean id?它应该由Spring Container自动注入吗?
@Autowired
如果仍然需要在我的bean中同时编写两个bean定义,使用注释有什么好处applicationContext.xml
?
回答:
首先,UserBean
除非您的应用程序中只有一个User对象,否则它似乎是一个数据载体,而不应该是Spring托管的bean。
其次,content:component-
scan只会处理以注释的类@Component
。由于您没有注释UserBean类,因此不会自动识别它,@Autowired
除非您将其明确声明为bean,就像在上下文文件中所做的那样。
以上是 使用Struts2的@Autowired Spring注释 的全部内容, 来源链接: utcz.com/qa/398112.html