我是 Spring 的新手,我试图了解@Autowired
注释如何与 struts2 动作一起工作。这是我的场景:
用户Bean.java
public class UserBean {
private String userName;
private int userAge;
private String userGender;
private String userJob;
private String[] userHobbies;
/*Getters and Setters */
}
用户操作.java
@Component
public 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;
}
}
应用程序上下文.xml
<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
?