ssh註入時的一個常見錯誤 – JAVA編程語言程序開發技術文章

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的專欄

發佈留言