java中callback使用

         以前每次看到程序中有回调的字眼,头都是很晕(不理解)。

    看了一个testCase的例子:

// 实现FilterChain new了 一个 特殊的实例  并且覆盖doFilter 方法
这里我感觉还是相当巧妙的,我不用显式定义
继承FilterChain这个抽象类。

 
 
  1.    final FilterChain filterChain = new FilterChain() {  
  2.   
  3.     public void doFilter(final ServletRequest arg0,  
  4.   
  5.             final ServletResponse arg1) throws IOException,  
  6.   
  7.             ServletException {  
  8.   
  9.         System.out.print("run filter");  
  10.   
  11.     }  
  12.   
  13. };  
  14.   
  15. try {  
  16.   
  17.     System.out.print("start filter");  
  18.   
  19.   
  20.   
  21.     this.filter.doFilter(request, response, filterChain);  
  22.   
  23.     assertNull(response.getRedirectedUrl());  
  24.   
  25. catch (IOException e) {  
  26.   
  27.     // TODO Auto-generated catch block  
  28.   
  29.     e.printStackTrace();  
  30.   
  31. catch (ServletException e) {  
  32.   
  33.     // TODO Auto-generated catch block  
  34.   
  35.     e.printStackTrace();  
  36.   
  37. }  


 
public int executeUpdate(final String hql, final Map pMap) {          int result = 0;          Object o = getHibernateTemplate().execute(new HibernateCallback() {              public Object doInHibernate(final Session session)                      throws HibernateException {                  int result = 0;                  Query queryObject = session.createQuery(hql);                  String[] params = queryObject.getNamedParameters();                  for (int i = 0, max = params.length; i < max; i++) {                      queryObject.setParameter(params[i], pMap.get(params[i]));                  }                  result = queryObject.executeUpdate();                  return result;                }          });          Integer i = (Integer) o;          result = i.intValue();          return result;      }  



HibernateTemplate 巧妙使用了
HibernateCallback使得dao 的代码非常优雅!

你可能感兴趣的:(java中callback使用)