作家
登录

使用Spring自定义注解实现任务路由

作者: 来源: 2017-08-04 09:36:45 阅读 我要评论

在Spring mvc的开辟中,我们可以经由过程RequestMapping来配,当前办法用于处理哪一个URL的请求.同样我们如今有一个需求,有一个义务调剂器,可以按照不合的义务类型路由到不合的义务履行器。其本质就是经由过程外部参数进行一次路由和Spring mvc做的工作类似。简单看了Spring mvc的实现道理之后,决定应用自定义注解的方法来实现以上功能。

自定义TaskHandler注解

  1. @Target({ElementType.TYPE}) 
  2. @Retention(RetentionPolicy.RUNTIME) 
  3. @Documented 
  4. @Component 
  5. public @interface TaskHandler { 
  6.  
  7.     String taskType() default ""
  8.  

以上定义了义务处理器的注解,个中@Component表示在spring 启动过程中,会扫描到并且注入到容器中。taskType表示类型。

义务处理器定义

义务处理器实现

  1. public abstract class AbstractTaskHandler { 
  2.  
  3.     /** 
  4.      * 义务履行器 
  5.      * 
  6.      * @param task 义务 
  7.      * @return 履行结不雅 
  8.      */ 
  9.      public abstract BaseResult execute(Task task); 
  10.  

以上定义了一个义务履行的处理器,其他所有的具体的义务履行器持续实现这个办法。个中Task表示义务的定义,包含义务Id,履行义务须要的参数等。

应用Spring自定义注解实现义务路由

接下来,我们可以实现一个具体的义务处理器。

  1. @TaskHandler(taskType = "UserNameChanged"
  2. public class UserNameChangedSender extends AbstractTaskHandler { 
  3.     @Override 
  4.     public BaseResult execute(Task task) { 
  5.       return new BaseResult(); 
  6.     } 
  7.  

以上我们就实现一个用户名修改通知的义务处理器,具体的营业逻辑这琅绫腔有实现。

个中:@TaskHandler(taskType = "UserNameChanged"),这里我们指定则个Handler用于处理用户名变革的义务

义务处理Handler注册

  1. public class TaskHandlerRegister extends ApplicationObjectSupport { 
  2.  
  3.     private final static Map<String, AbstractTaskHandler> TASK_HANDLERS_MAP = new HashMap<>(); 
  4.  
  5.     private static final Logger LOGGER = LoggerFactory.getLogger(TaskHandlerRegister.class); 
  6.  
  7.     @Override 
  8.     protected void initApplicationContext(ApplicationContext context) throws BeansException { 
  9.         super.initApplicationContext(context); 
  10.         Map<String, Object> taskBeanMap = context.getBeansWithAnnotation(TaskHandler.class); 

      推荐阅读

      互联网法院:司法与互联网的“无缝对接”

    如今,人们的临盆生活早已经离不开互联网,它在带来便利的同时也激发大年夜量的新型涉网胶葛。特别是,因为互联网自身固有的跨地区、去中间化、在线化特点,新型涉网胶葛对现行司法理论、>>>详细阅读


    本文标题:使用Spring自定义注解实现任务路由

    地址:http://www.17bianji.com/lsqh/36542.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)