spring中为什么实体类不用注入?

public class SaveUserAction extends ActionSupport {

private User user;

private UserService service;

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public UserService getService() {
return service;
}

public void setService(UserService service) {
this.service = service;
}

@Override
public String execute() throws Exception {

service.save(user);
return SUCCESS;
}

}
上面的User为什么不用在ApplicationContext.xml中位置注入呢?

整个Action可以说是web容器的Service方法的包装过的类,是用来处理客户端传递过来的请求的。
这个user只是一个属性,参数而已,当客户端发送请求过来时,如果将user对象的一些属性同时传递过来,那么容器将会自动将user实例化。
而service是需要注入,因为,service是一个工具类,他需要完成增删改查操作,而user则是参数,就是这个service对user进行增删改查操作,而UserService 实际上应该是一个接口,这就是面向接口编程,别人不知道你这个service这个到底是那个类的实例,完全通过SPring的配置注入,更安全,耦合性低
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-30
action中的user实体是做为接收客户端传过来的值而存在的。显然它本身会经常创建、值会经常变化的。
而通过spring注入的一般是不变的,即不需要经常创建。也一般无成员变量,即不存在值的变化。
第2个回答  2012-10-11
你可以看下我在CSDN给你的回复,希望对你有帮助。
第3个回答  2012-01-30
你创建对象的时候创建的是接口还是实体?追问

是User实体类!
public class User {

private int id;

private String firstname;

private String lastname;

private int age;

追答

UserService 这个中又是什么代码呢?

追问

public interface UserService {

public void save(User user);

public List findAll();

public void remove(User user);

public User find(int id);

public void update(User user);

}

第4个回答  2012-01-30
user是当做一个参数传过来的追问

我刚学习java,您能详细说一下吗?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网