Spring 详解(二)------- AOP概念以及两种实现方式

  target:目标类,需要被代理的类。例如:ArithmeticCalculator
  
  Joinpoint(连接点):所谓连接点是指那些可能被拦截到的方法。例如:所有的方法
  
  PointCut 切入点:已经被增强的连接点。例如:add()
  
  advice:通知/增强,增强代码。例如:showRaram、showResult
  
  Weaving(织入):是指把增强 advice 应用到目标对象 target 来创建新的代理对象proxy的过程.
  
  proxy 代理类:通知+切入点
  
  Aspect(切面)::是切入点 pointcut 和通知 advice 的结合
  
  2. AOP 的作用
  
  当我们为系统做参数验证,登录权限验证或者日志操作等,为了实现代码复用,我们可能把日志处理抽离成一个新的方法。但是这样我们仍然必须手动插入这些方法,这样的话模块之间高耦合,不利于后期的维护和功能的扩展,有了 AOP 我们可以将功能抽成一个切面,代码复用好,低耦合。
  
  3. AOP 的通知类型
  
  Spring按照通知Advice在目标类方法的连接点位置,可以分为5类
  
  前置通知 org.springframework.aop.MethodBeforeAdvice
  
  在目标方法执行前实施增强,比如上面例子的 before()方法
  
  后置通知 org.springframework.aop.AfterReturningAdvice
  
  在目标方法执行后实施增强,比如上面例子的 after()方法
  
  环绕通知 org.aopalliance.intercept.MethodInterceptor
  
  在目标方法执行前后实施增强
  
  异常抛出通知 org.springframework.aop.ThrowsAdvice
  
  在方法抛出异常后实施增强
  
  引介通知 org.springframework.aop.IntroductionInterceptor
  
  在目标类中添加一些新的方法和属性
  
  IndexSearcher searcher=new IndexSearcher(reader);
  
  // 4.创建搜索的Query
  
  QueryParser parser = new QueryParser("content", new StandardAnalyzer());
  
  Query query  = parser.parse("java"); //查询保护北京的文档
  
  //5.根据search搜索并且返回TopDocs
  
  TopDocs tds = searcher.search(query,www.dasheng178.com 10); //查询10条
  
  //6. 根据TopDocs获取ScoreDos对象
  
  ScoreDoc [] docs = tds.scoreDocs;
  
  for(ScoreDoc sd : docs){
  
  //7.根据seracher和scoreDoc对象获取具体的Document对象
  
  //8.根据Doucment对象获取需要的之
  
  Document d =www.douniu157.com searcher.doc(sd.doc);
  
  String content =www.xiaomiyulezc.com d.get("content");
  
  String path = d.get("path");
  
  String name www.xianggelila2.com= d.get("name");
  
  System.out.println("name= "www.thd178.com/+ name + www.gcyL157.com" path "+ path +" content "+ content);
  
  }
  
  reader.close();
  
  域的详细介绍
  
  是否分词
  
  分词的作用是为了索引
  
  需要分词: 文件名称,文件内容
  
  不需要分词: 不需要索引的域不需要分词,还有就是分词后毫无意义的域不需要分词
  
  比如Id,身份证号
  
  是否索引
  
  索引的目的是为了搜索
  
  需要搜索的域一定要创建索引,只有创建了索引才能被搜索出来。
  
  不需要搜索的域可以不创建索引
  
  需要索引:文件名称、文件内容
  
  是否存储: 看个人需要,将内容放入document文档中保存出来,会额外占用磁盘空间。
  
  如果需要搜索的时候,需要马上显示出来,可以放到document中,也就是需要存储,这样查询显示速度快。
  
  域的各种类型
  
  StringField 字符串
  
  LongField long型
  
  StoredField 图片地址
  
  TextField 文本域
  
  -

猜你喜欢

转载自blog.csdn.net/li123128/article/details/85641401
今日推荐