在webservice上使用spring我有这个代码:
@RequestMapping(value = "/testOperation", method = GET)
public String testOperation() throws Exception
{
ts.setName("First Value");
ts.name = "Second Value";
return ts.getName() + " and " + ts.name;
}
收到的回复是"第一价值和第二价值"。我不明白为什么不是"第二价值和第二价值"。 ts是请求范围注入变量。代码是:
@Component
@Scope(value=WebApplicationContext.SCOPE_REQUEST, proxyMode=ScopedProxyMode.TARGET_CLASS)
public class TS implements Serializable{
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我不明白这种行为
答案 0 :(得分:1)
由于$("#orderby").on('change', function() {
if ($('#orderby').val() == 'lowhigh'){
//post here.
}else if ($('#orderby').val() == 'default'){
//post here
}
});
配置为请求作用域,因此spring会为其创建代理。因此,TS
和setName
调用将重定向到为每个请求创建的getName
实例。但是直接字段引用不能被代理,它只影响注入控制器的实例。