ssh注入时的一个常见错误

2014-11-24 03:29:08 · 作者: · 浏览: 0

spring 基本上只有两个功能,一个是IOC(即注入),一个是AOP(面向切面编程,是动态代理的一种实现,技术实现上用到了AspectJ这个框架)。这里主要说一下JAVA程序员在使用spring的IOC时常犯的一个错误。下面的例子是SSH环境,spring会在action中注入service,在service中注入一个dao。


public class XXXAction{


private XxxService xxxService;


public XXXService getXxxService(){

return xxxService;

}

public void setXxxService(XxxService xxxService){

this.xxxService = xxxService;

}

}

这样写一般是没有问题的,但是分析一下会发现,对xxxService的get方法是多余的,并且有可能引起错误。Action 中注入service就是spring整了一个service对象让action调用。把service注入action 的时候一般调用service对应的set方法,也可能是构造,还有别的。这里的 service对应的get方法完全没有用。如果我们使用Struts2的JSON插件,当Action中的对象由struts转换成JSON字符串返回客户端的时候,如果遇到了service的get方法,就会出现错误,但是不报错。原因应该是欲将service 也转换成JSON字符串中的一个属性而引发的错误

摘自 lovemelovemycode的专栏