使用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 */

}

@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;

}

}

<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

回到顶部