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字符串中的一个属性而引发的错误

本文深入探讨了在使用Spring框架时,JAVA程序员常犯的一个错误:在Action中注入service时,对service的get方法的不当使用可能引发的问题。具体而言,文章通过SSH环境下的例子解释了这种不当使用的潜在风险,特别是当使用Struts2的JSON插件将对象转换为JSON字符串返回客户端时,可能会遇到的错误。此外,文章还提供了避免此类错误的方法。
1439

被折叠的 条评论
为什么被折叠?



