
# 用户自定义拦截插件使用
- **Entry插件**
  继承抽象类Processor，实现doProcess接口，可定义多个插件。
  插件均需注册为bean。
  ```
  import com.huawei.devspore.horizon.DataEvent;
  import com.huawei.devspore.horizon.exception.PluginException;
  import com.huawei.devspore.horizon.processor.Processor;
  import org.springframework.stereotype.Component;
  /**
   * custom request plugin
   */
  @Component
  public class CustomRequestPlugin extends Processor {
      @Override
      public boolean doProcess(DataEvent dataEvent) throws PluginException {
          // do your code
          ........
          return true;
      }
  }
  ```
  配置文件中多个插件以","分隔，多个插件按配置顺序执行。
  ```
  evspore:
    horizon:
      processors: customRequestPlugin
  ```
  

- **Exit插件**
  实现Observer接口中observer接口，可定义多个插件。
  插件均需注册为bean。
  ```
  import com.huawei.devspore.horizon.DataEvent;
  import com.huawei.devspore.horizon.exception.PluginException;
  import com.huawei.devspore.horizon.subscribe.Observer;
  import org.springframework.stereotype.Component;
  /**
   * custom response plugin
   */
  @Component
  public class CustomResponsePlugin implements Observer {
      @Override
      public void observe(DataEvent dataEvent) throws PluginException {
          // do your code
          ......
      }
  }
  ```
  配置文件中多个插件以","分隔，多个插件按配置顺序执行。
  ```
  devspore:
    horizon:
      observers: customResponsePlugin
  ```
  
 
