使用 Spring 更好地处理 Struts 动作 您所在的位置:网站首页 氯酸钾制氧气的化学方程式怎么写 使用 Spring 更好地处理 Struts 动作

使用 Spring 更好地处理 Struts 动作

2023-08-01 10:29| 来源: 网络整理| 查看: 265

ææ¡£é项 å°æ­¤é¡µä½ä¸ºçµå­é®ä»¶åé

å°æ­¤é¡µä½ä¸ºçµå­é®ä»¶åé

æªæ¾ç¤ºéè¦ JavaScript çææ¡£é项

讨论

æ ·ä¾ä»£ç 

级å«: 中级

George Franciscus ([email protected]), è´è´£äºº, Nexcel

2005 å¹´ 10 æ 11 æ¥

Struts Recipes çåèè George Franciscus å°ä»ç»å¦ä¸ä¸ªé大ç Struts æ´åçªé¨ ââ è¿æ¬¡æ¯å° Struts åºç¨ç¨åºå¯¼å¥ Spring æ¡æ¶ã请è·é Georgeï¼ä»å°åæ¨å±ç¤ºå¦ä½æ¹å Struts å¨ä½ï¼ä½¿å¾ç®¡ç Struts å¨ä½å°±å管ç Spring beans é£æ ·ãç»ææ¯ä¸ä¸ªå¢å¼ºç web æ¡æ¶ï¼è¿ä¸ªæ¡æ¶å¯ä»¥æ¹ä¾¿å°å©ç¨ Spring AOP çä¼å¿ã

æ¨è¯å®å·²ç»å¬è¯´è¿æ§å¶å转 (IOC) 设计模å¼ï¼å ä¸ºå¾é¿ä¸æ®µæ¶é´ä»¥æ¥ä¸ç´å¨æµä¼ å³äºå®çä¿¡æ¯ãå¦ææ¨å¨ä»»ä½åè½ä¸­ä½¿ç¨è¿ Spring æ¡æ¶ï¼é£ä¹æ¨å°±ç¥éå¶åççä½ç¨ãå¨æ¬æ中ï¼æå©ç¨è¿ä¸åçæä¸ä¸ª Struts åºç¨ç¨åºæ³¨å¥ Spring æ¡æ¶ï¼æ¨å°äº²èº«ä½ä¼å° IOC 模å¼ç强大ã

å°ä¸ä¸ª Struts åºç¨ç¨åºæ´åè¿ Spring æ¡æ¶å·æå¤æ¹é¢çä¼ç¹ãé¦åï¼Spring æ¯ä¸ºè§£å³ä¸äºå³äº JEE ççå®ä¸çé®é¢è设计çï¼æ¯å¦å¤ææ§ãä½æ§è½åå¯æµè¯æ§ï¼ç­ç­ã第äºï¼Spring æ¡æ¶åå«ä¸ä¸ª AOP å®ç°ï¼å许æ¨å°é¢åæ¹é¢ææ¯åºç¨äºé¢å对象ç代ç ã第ä¸ï¼ä¸äºäººå¯è½ä¼è¯´ Spring æ¡æ¶åªæå¤ç Struts æ¯ Struts å¤çèªå·±å¥½ãä½æ¯è¿æ¯è§ç¹é®é¢ï¼ææ¼ç¤ºä¸ç§å° Struts åºç¨ç¨åºæ´åå° Spring æ¡æ¶çæ¹æ³åï¼å·ä½ç±æ¨èªå·±å³å®ä½¿ç¨åªä¸ç§ã

æææ¼ç¤ºçæ¹æ³é½æ¯æ§è¡èµ·æ¥ç¸å¯¹ç®åçï¼ä½æ¯å®ä»¬å´å·æææ¾ä¸åçä¼ç¹ãæ为æ¯ä¸ç§æ¹æ³å建äºä¸ä¸ªç¬ç«èå¯ç¨çä¾å­ï¼è¿æ ·æ¨å°±å¯ä»¥å®å¨ç解æ¯ç§æ¹æ³ã请åé ä¸è½½ é¨åè·å¾å®æ´ä¾å­æºä»£ç ã请åé åèèµæï¼ä¸è½½ Struts MVC å Spring æ¡æ¶ã

为ä»ä¹ Spring è¿ä¹äºä¸èµ·ï¼

Spring çåç«è Rod Johnson 以ä¸ç§æ¹å¤çç¼åçå¾ Java™ ä¼ä¸è½¯ä»¶å¼åï¼å¹¶ä¸æè®®å¾å¤ä¼ä¸é¾é¢é½è½å¤éè¿æç¥å°ä½¿ç¨ IOC 模å¼ï¼ä¹ç§°ä½ä¾èµæ³¨å¥ï¼æ¥è§£å³ãå½ Rod åä¸ä¸ªå·æå¥ç®ç²¾ç¥çå¼æ¾æºç å¼åèå¢éå°è¿ä¸ªç论åºç¨äºå®è·µæ¶ï¼ç»æ就产çäº Spring æ¡æ¶ãç®è¨ä¹ï¼Spring æ¯ä¸ä¸ªè½»åç容å¨ï¼å©ç¨å®å¯ä»¥ä½¿ç¨ä¸ä¸ªå¤é¨ XML éç½®æ件æ¹ä¾¿å°å°å¯¹è±¡è¿æ¥å¨ä¸èµ·ãæ¯ä¸ªå¯¹è±¡é½å¯ä»¥éè¿æ¾ç¤ºä¸ä¸ª JavaBean å±æ§æ¶å°ä¸ä¸ªå°ä¾èµå¯¹è±¡çå¼ç¨ï¼çç»æ¨çç®åä»»å¡å°±åªæ¯å¨ä¸ä¸ª XML éç½®æ件中æå®ä»¬è¿æ¥å¥½ã

IOC å Spring

IOC æ¯ä¸ç§ä½¿åºç¨ç¨åºé»è¾å¤å¨åç设计模å¼ï¼æ以å®æ¯è¢«æ³¨å¥èä¸æ¯è¢«åå¥å®¢æ·æºä»£ç ä¸­ãå° IOC ä¸æ¥å£ç¼ç¨åºç¨ç»åï¼å°±å Spring æ¡æ¶é£æ ·ï¼äº§çäºä¸ç§æ¶æï¼è¿ç§æ¶æè½å¤åå°å®¢æ·æºå¯¹ç¹å®å®ç°é»è¾çä¾èµã请åé åèèµæ äºè§£æ´å¤å³äº IOC å Spring çä¿¡æ¯ã

ä¾èµæ³¨å¥æ¯ä¸ä¸ªå¼ºå¤§çç¹æ§ï¼ä½æ¯ Spring æ¡æ¶è½å¤æä¾æ´å¤ç¹æ§ãSpring æ¯æå¯ææçäºå¡ç®¡çå¨ï¼å¯ä»¥ç»æ¨çäºå¡å¤çæä¾æ´å¹¿æ³çéæ©èå´ãå®éæäºé¢åçæä¹æ§æ¡æ¶ï¼å¹¶ä¸æä¾ä¸ä¸ªä¸è´çå¼å¸¸å±æ¬¡ç»æãSpring è¿æä¾äºä¸ç§ä½¿ç¨é¢åæ¹é¢ä»£ç ä»£æ¿æ­£å¸¸çé¢å对象代ç çç®åæºå¶ã

Spring AOP å许æ¨ä½¿ç¨æ¦æªå¨ å¨ä¸ä¸ªæå¤ä¸ªæ§è¡ç¹ä¸æ¦æªåºç¨ç¨åºé»è¾ãå å¼ºåºç¨ç¨åºå¨æ¦æªå¨ä¸­çæ¥å¿è®°å½é»è¾ä¼äº§çä¸ä¸ªæ´å¯è¯»çãå®ç¨ç代ç åºç¡ï¼æ以æ¦æªå¨å¹¿æ³ç¨äºæ¥å¿è®°å½ãæ¨å¾å¿«å°±ä¼çå°ï¼ä¸ºäºå¤ç横åå³æ³¨ç¹ï¼Spring AOP åå¸äºå®èªå·±çæ¦æªå¨ï¼æ¨ä¹å¯ä»¥ç¼åæ¨èªå·±çæ¦æªå¨ã

å页é¦

æ´å Struts å Spring

ä¸ Struts ç¸ä¼¼ï¼Spring å¯ä»¥ä½ä¸ºä¸ä¸ª MVC å®ç°ãè¿ä¸¤ç§æ¡æ¶é½å·æèªå·±çä¼ç¹å缺ç¹ï¼å°½ç®¡å¤§é¨å人åæ Struts å¨ MVC æ¹é¢ä»ç¶æ¯æ好çãå¾å¤å¼åå¢éå·²ç»å­¦ä¼å¨æ¶é´ç´§è¿«çæ¶åå©ç¨ Struts ä½ä¸ºæé é«å质软件çåºç¡ãStruts å·æå¦æ­¤å¤§çæ¨å¨åï¼ä»¥è³äºå¼åå¢éå®æ¿æ´å Spring æ¡æ¶çç¹æ§ï¼èä¸æ¿æ转æ¢æ Spring MVCã没å¿è¦è¿è¡è½¬æ¢å¯¹æ¨æ¥è¯´æ¯ä¸ä¸ªå¥½æ¶æ¯ãSpring æ¶æå许æ¨å° Struts ä½ä¸º Web æ¡æ¶è¿æ¥å°åºäº Spring çä¸å¡åæä¹å±ãæåçç»æå°±æ¯ç°å¨ä¸åæ¡ä»¶é½å·å¤äºã

å¨æ¥ä¸æ¥çå°çªé¨ä¸­ï¼æ¨å°ä¼äºè§£å°ä¸ç§å° Struts MVC æ´åå° Spring æ¡æ¶çæ¹æ³ãæå°æ­ç¤ºæ¯ç§æ¹æ³ç缺é·å¹¶ä¸å¯¹æ¯å®ä»¬çä¼ç¹ã ä¸æ¦æ¨äºè§£å°ææä¸ç§æ¹æ³çä½ç¨ï¼æå°ä¼åæ¨å±ç¤ºä¸ä¸ªä»¤äººå´å¥çåºç¨ç¨åºï¼è¿ä¸ªç¨åºä½¿ç¨çæ¯è¿ä¸ç§æ¹æ³ä¸­ææå欢çä¸ç§ã

å页é¦

ä¸ä¸ªå°çªé¨

æ¥ä¸æ¥çæ¯ç§æ´åææ¯ï¼æèçªé¨ï¼é½æèªå·±çä¼ç¹åç¹ç¹ãæåç±å¶ä¸­çä¸ç§ï¼ä½æ¯æç¥éè¿ä¸ç§é½è½å¤å æ·±æ¨å¯¹ Struts å Spring çç解ãå¨å¤çåç§ä¸åæåµçæ¶åï¼è¿å°ç»æ¨æä¾ä¸ä¸ªå¹¿éçéæ©èå´ãæ¹æ³å¦ä¸ï¼

ä½¿ç¨ Spring ç ActionSupport ç±»æ´å Structs ä½¿ç¨ Spring ç DelegatingRequestProcessor è¦ç Struts ç RequestProcessor å° Struts Action 管çå§æç» Spring æ¡æ¶

è£è½½åºç¨ç¨åºç¯å¢

æ è®ºæ¨ä½¿ç¨åªç§ææ¯ï¼é½éè¦ä½¿ç¨ Spring ç ContextLoaderPlugin 为 Struts ç ActionServlet è£è½½ Spring åºç¨ç¨åºç¯å¢ãå°±åæ·»å ä»»ä½å¶ä»æ件ä¸æ ·ï¼ç®åå°åæ¨ç struts-config.xml æ件添å è¯¥æ件ï¼å¦ä¸æ示ï¼

åé¢å·²ç»æå°è¿ï¼å¨ ä¸è½½ é¨åï¼æ¨è½å¤æ¾å°è¿ä¸ä¸ªå®å¨å¯ä½¿ç¨çä¾å­çå®æ´æºä»£ç ãæ¯ä¸ªä¾å­é½ä¸ºä¸ä¸ªä¹¦ç±æç´¢åºç¨ç¨åºæä¾ä¸ç§ä¸åç Struts å Spring çæ´åæ¹æ³ãæ¨å¯ä»¥å¨è¿éçå°ä¾å­çè¦ç¹ï¼ä½æ¯æ¨ä¹å¯ä»¥ä¸è½½åºç¨ç¨åºä»¥æ¥çææçç»èã

å页é¦

çªé¨ 1. ä½¿ç¨ Spring ç ActionSupport

æå¨å建ä¸ä¸ª Spring ç¯å¢æ¯ä¸ç§æ´å Struts å Spring çæç´è§çæ¹å¼ã为äºä½¿å®åå¾æ´ç®åï¼Spring æä¾äºä¸äºå¸®å©ã为äºæ¹ä¾¿å°è·å¾ Spring ç¯å¢ï¼org.springframework.web.struts.ActionSupport ç±»æä¾äºä¸ä¸ª getWebApplicationContext() æ¹æ³ãæ¨æåçåªæ¯ä» Spring ç ActionSupport èä¸æ¯ Struts Action ç±»æ©å±æ¨çå¨ä½ï¼å¦æ¸å 1 æ示ï¼

æ¸å 1. ä½¿ç¨ ActionSupport æ´å Struts package ca.nexcel.books.actions; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; import org.springframework.context.ApplicationContext; import org.springframework.web.struts.ActionSupport; import ca.nexcel.books.beans.Book; import ca.nexcel.books.business.BookService; public class SearchSubmit extends ActionSupport { |(1) public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { DynaActionForm searchForm = (DynaActionForm) form; String isbn = (String) searchForm.get("isbn"); //the old fashion way //BookService bookService = new BookServiceImpl(); ApplicationContext ctx = getWebApplicationContext(); |(2) BookService bookService = (BookService) ctx.getBean("bookService"); |(3) Book book = bookService.read(isbn.trim()); if (null == book) { ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR,new ActionError ("message.notfound")); saveErrors(request, errors); return mapping.findForward("failure") ; } request.setAttribute("book", book); return mapping.findForward("success"); } }

让æ们快éæèä¸ä¸è¿éå°åºåçäºä»ä¹ãå¨ (1) å¤ï¼æéè¿ä» Spring ç ActionSupport ç±»èä¸æ¯ Struts ç Action ç±»è¿è¡æ©å±ï¼å建äºä¸ä¸ªæ°ç Actionãå¨ (2) å¤ï¼æä½¿ç¨ getWebApplicationContext() æ¹æ³è·å¾ä¸ä¸ª ApplicationContextã为äºè·å¾ä¸å¡æå¡ï¼æ使ç¨å¨ (2) å¤è·å¾çç¯å¢å¨ (3) å¤æ¥æ¾ä¸ä¸ª Spring beanã

è¿ç§ææ¯å¾ç®å并ä¸æäºç解ãä¸å¹¸çæ¯ï¼å®å° Struts å¨ä½ä¸ Spring æ¡æ¶è¦åå¨ä¸èµ·ãå¦ææ¨æ³æ¿æ¢æ Springï¼é£ä¹æ¨å¿é¡»éå代ç ã并ä¸ï¼ç±äº Struts å¨ä½ä¸å¨ Spring çæ§å¶ä¹ä¸ï¼æ以å®ä¸è½è·å¾ Spring AOP çä¼å¿ãå½ä½¿ç¨å¤éç¬ç«ç Spring ç¯å¢æ¶ï¼è¿ç§ææ¯å¯è½æç¨ï¼ä½æ¯å¨å¤§å¤æ°æåµä¸ï¼è¿ç§æ¹æ³ä¸å¦å¦å¤ä¸¤ç§æ¹æ³åéã

å页é¦

çªé¨ 2. è¦ç RequestProcessor

å° Spring ä» Struts å¨ä½ä¸­å离æ¯ä¸ä¸ªæ´å·§å¦ç设计éæ©ãå离çä¸ç§æ¹æ³æ¯ä½¿ç¨ org.springframework.web.struts.DelegatingRequestProcessor ç±»æ¥è¦ç Struts ç RequestProcessor å¤çç¨åºï¼å¦æ¸å 2 æ示ï¼

æ¸å 2. éè¿ Spring ç DelegatingRequestProcessor è¿è¡æ´å |(1)

æå©ç¨äº æ è®°æ¥ç¨ DelegatingRequestProcessor è¦çé»è®¤ç Struts RequestProcessorãä¸ä¸æ­¥æ¯å¨æç Spring éç½®æ件中注å该å¨ä½ï¼å¦æ¸å 3 æ示ï¼

æ¸å 3. å¨ Spring éç½®æ件中注åä¸ä¸ªå¨ä½ |(1)

注æï¼å¨ (1) å¤ï¼æ使ç¨å称å±æ§æ³¨åäºä¸ä¸ª beanï¼ä»¥å¹é struts-config å¨ä½æ å°å称ãSearchSubmit å¨ä½æ­ç¤ºäºä¸ä¸ª JavaBean å±æ§ï¼å许 Spring å¨è¿è¡æ¶å¡«åå±æ§ï¼å¦æ¸å 4 æ示ï¼

æ¸å 4. å·æ JavaBean å±æ§ç Struts å¨ä½ package ca.nexcel.books.actions; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; import ca.nexcel.books.beans.Book; import ca.nexcel.books.business.BookService; public class SearchSubmit extends Action { private BookService bookService; public BookService getBookService() { return bookService; } public void setBookService(BookService bookService) { | (1) this.bookService = bookService; } public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { DynaActionForm searchForm = (DynaActionForm) form; String isbn = (String) searchForm.get("isbn"); Book book = getBookService().read(isbn.trim()); |(2) if (null == book) { ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("message.notfound")); saveErrors(request, errors); return mapping.findForward("failure") ; } request.setAttribute("book", book); return mapping.findForward("success"); } }

å¨æ¸å 4 中ï¼æ¨å¯ä»¥äºè§£å°å¦ä½å建 Struts å¨ä½ãå¨ (1) å¤ï¼æå建äºä¸ä¸ª JavaBean å±æ§ãDelegatingRequestProcessorèªå¨å°éç½®è¿ç§å±æ§ãè¿ç§è®¾è®¡ä½¿ Struts å¨ä½å¹¶ä¸ç¥éå®æ­£è¢« Spring 管çï¼å¹¶ä¸ä½¿æ¨è½å¤å©ç¨ Sping çå¨ä½ç®¡çæ¡æ¶çææä¼ç¹ãç±äºæ¨ç Struts å¨ä½æ³¨æä¸å° Spring çå­å¨ï¼æ以æ¨ä¸éè¦éåæ¨ç Struts 代ç å°±å¯ä»¥ä½¿ç¨å¶ä»æ§å¶å转容å¨æ¥æ¿æ¢æ Springã

DelegatingRequestProcessor æ¹æ³çç¡®æ¯ç¬¬ä¸ç§æ¹æ³å¥½ï¼ä½æ¯ä»ç¶å­å¨ä¸äºé®é¢ãå¦ææ¨ä½¿ç¨ä¸ä¸ªä¸åç RequestProcessorï¼åéè¦æå¨æ´å Spring ç DelegatingRequestProcessorãæ·»å ç代ç ä¼é æç»´æ¤ç麻ç¦å¹¶ä¸å°æ¥ä¼éä½æ¨çåºç¨ç¨åºççµæ´»æ§ãæ­¤å¤ï¼è¿æè¿ä¸äºä½¿ç¨ä¸ç³»åå½ä»¤æ¥ä»£æ¿ Struts RequestProcessor çä¼ é»ã è¿ç§æ¹åå°ä¼å¯¹è¿ç§è§£å³æ¹æ³ç使ç¨å¯¿å½é æè´é¢çå½±åã

å页é¦

çªé¨ 3. å°å¨ä½ç®¡çå§æç» Spring

ä¸ä¸ªæ´å¥½ç解å³æ¹æ³æ¯å° Strut å¨ä½ç®¡çå§æç» Springãæ¨å¯ä»¥éè¿å¨ struts-config å¨ä½æ å°ä¸­æ³¨åä¸ä¸ªä»£çæ¥å®ç°ã代çè´è´£å¨ Spring ç¯å¢ä¸­æ¥æ¾ Struts å¨ä½ãç±äºå¨ä½å¨ Spring çæ§å¶ä¹ä¸ï¼æ以å®å¯ä»¥å¡«åå¨ä½ç JavaBean å±æ§ï¼å¹¶ä¸ºåºç¨è¯¸å¦ Spring ç AOP æ¦æªå¨ä¹ç±»çç¹æ§å¸¦æ¥äºå¯è½ã

æ¸å 5 中ç Action ç±»ä¸æ¸å 4 中çç¸åãä½æ¯ struts-config æä¸äºä¸åï¼

æ¸å 5. Spring æ´åçå§ææ¹æ³

æ¸å 5 æ¯ä¸ä¸ªå¸åç struts-config.xml æ件ï¼åªæä¸ä¸ªå°å°çå·®å«ãå®æ³¨å Spring 代çç±»çå称ï¼èä¸æ¯å£°æå¨ä½çç±»åï¼å¦ï¼1ï¼å¤æ示ãDelegatingActionProxy 类使ç¨å¨ä½æ å°å称æ¥æ¾ Spring ç¯å¢ä¸­çå¨ä½ãè¿å°±æ¯æä»¬ä½¿ç¨ ContextLoaderPlugIn 声æçç¯å¢ã

å°ä¸ä¸ª Struts å¨ä½æ³¨å为ä¸ä¸ª Spring bean æ¯é常ç´è§çï¼å¦æ¸å 6 æ示ãæå©ç¨å¨ä½æ å°ä½¿ç¨ æ è®°çå称å±æ§ï¼å¨è¿ä¸ªä¾å­ä¸­æ¯ "/searchSubmit"ï¼ç®åå°å建äºä¸ä¸ª beanãè¿ä¸ªå¨ä½ç JavaBean å±æ§åä»»ä½ Spring bean ä¸æ ·è¢«å¡«åï¼

æ¸å 6. å¨ Spring ç¯å¢ä¸­æ³¨åä¸ä¸ª Struts å¨ä½ å页é¦

å¨ä½å§æçä¼ç¹

å¨ä½å§æ解å³æ¹æ³æ¯è¿ä¸ç§æ¹æ³ä¸­æ好çãStruts å¨ä½ä¸äºè§£ Springï¼ä¸å¯¹ä»£ç ä½ä»»ä½æ¹åå°±å¯ç¨äºé Spring åºç¨ç¨åºä¸­ãRequestProcessor çæ¹åä¸ä¼å½±åå®ï¼å¹¶ä¸å®å¯ä»¥å©ç¨ Spring AOP ç¹æ§çä¼ç¹ã

å¨ä½å§æçä¼ç¹ä¸æ­¢å¦æ­¤ãä¸æ¦è®© Spring æ§å¶æ¨ç Struts å¨ä½ï¼æ¨å°±å¯ä»¥ä½¿ç¨ Spring ç»å¨ä½è¡¥åæ´å¼ºçæ´»åãä¾å¦ï¼æ²¡æ Spring çè¯ï¼ææç Struts å¨ä½é½å¿é¡»æ¯çº¿ç¨å®å¨çãå¦ææ¨è®¾ç½® æ è®°ç singleton å±æ§ä¸º“false”ï¼é£ä¹ä¸ç®¡ç¨ä½ç§æ¹æ³ï¼æ¨çåºç¨ç¨åºé½å°å¨æ¯ä¸ä¸ªè¯·æ±ä¸æä¸ä¸ªæ°çæçå¨ä½å¯¹è±¡ãæ¨å¯è½ä¸éè¦è¿ç§ç¹æ§ï¼ä½æ¯æå®æ¾å¨æ¨çå·¥å·ç®±ä¸­ä¹å¾å¥½ãæ¨ä¹å¯ä»¥å©ç¨ Spring ççå½å¨ææ¹æ³ãä¾å¦ï¼å½å®ä¾å Struts å¨ä½æ¶ï¼ æ è®°ç init-method å±æ§è¢«ç¨äºè¿è¡ä¸ä¸ªæ¹æ³ã类似å°ï¼å¨ä»å®¹å¨ä¸­å é¤ bean ä¹åï¼destroy-method å±æ§æ§è¡ä¸ä¸ªæ¹æ³ãè¿äºæ¹æ³æ¯ç®¡çæ贵对象ç好åæ³ï¼å®ä»¬ä»¥ä¸ç§ä¸ Servlet çå½å¨æç¸åçæ¹å¼è¿è¡ç®¡çã

å页é¦

æ¦æª Struts

åé¢æå°è¿ï¼éè¿å° Struts å¨ä½å§æç» Spring æ¡æ¶èæ´å Struts å Spring çä¸ä¸ªä¸»è¦çä¼ç¹æ¯ï¼æ¨å¯ä»¥å° Spring ç AOP æ¦æªå¨åºç¨äºæ¨ç Struts å¨ä½ãéè¿å° Spring æ¦æªå¨åºç¨äº Struts å¨ä½ï¼æ¨å¯ä»¥ç¨æå°ç代价å¤ç横åå³æ³¨ç¹ã

è½ç¶ Spring æä¾å¾å¤åç½®æ¦æªå¨ï¼ä½æ¯æå°åæ¨å±ç¤ºå¦ä½å建èªå·±çæ¦æªå¨å¹¶æå®åºç¨äºä¸ä¸ª Struts å¨ä½ã为äºä½¿ç¨æ¦æªå¨ï¼æ¨éè¦åä¸ä»¶äºï¼

å建æ¦æªå¨ã 注åæ¦æªå¨ã 声æå¨ä½å¤æ¦æªä»£ç ã

è¿çèµ·æ¥é常ç®åçå å¥è¯å´é常强大ãä¾å¦ï¼å¨æ¸å 7 中ï¼æ为 Struts å¨ä½å建äºä¸ä¸ªæ¥å¿è®°å½æ¦æªå¨ã è¿ä¸ªæ¦æªå¨å¨æ¯ä¸ªæ¹æ³è°ç¨ä¹åæå°ä¸å¥è¯ï¼

æ¸å 7. ä¸ä¸ªç®åçæ¥å¿è®°å½æ¦æªå¨ package ca.nexcel.books.interceptors; import org.springframework.aop.MethodBeforeAdvice; import java.lang.reflect.Method; public class LoggingInterceptor implements MethodBeforeAdvice { public void before(Method method, Object[] objects, Object o) throws Throwable { System.out.println("logging before!"); } }

è¿ä¸ªæ¦æªå¨é常ç®åãbefore() æ¹æ³å¨æ¦æªç¹ä¸­æ¯ä¸ªæ¹æ³ä¹åè¿è¡ãå¨æ¬ä¾ä¸­ï¼å®æå°åºä¸å¥è¯ï¼å¶å®å®å¯ä»¥åæ¨æ³åçä»»ä½äºãä¸ä¸æ­¥å°±æ¯å¨ Spring éç½®æ件中注åè¿ä¸ªæ¦æªå¨ï¼å¦æ¸å 8 æ示ï¼

æ¸å 8. å¨ Spring éç½®æ件中注åæ¦æªå¨ |(1) |(2) /searchSubmit


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有