`

通过SPRING配置多个实现类,循环执行中的方法

    博客分类:
  • JAVA
 
阅读更多
     自动处理后续代码方法

在接口 定义完成方法
public interface WorkBenchManager {
public void finishTask(){
public void afterFinish(); 
}
实现类
public class WorkBenchManagerImpl implements WorkBenchManager {
List taskListeners;
/**
     * @return the taskValidators
     */
    public List getTaskListeners() {
        return taskListeners;
    }
    /**
     * @param taskValidators the taskValidators to set
     */
    public void setTaskListeners(List taskListeners) {
        this.taskListeners = taskListeners;
    }   

public void finishTask(){
logger.info("开始...");
.................
  this.afterFinish();
logger.info("结束...");
}

/**
     * 完成任务后的处理
     * @param sampleId
     * @param calledNo
     * @return
     */
public void afterFinish(){
        logger.info("开始完成任务后的处理...");
        List validators=this.getTaskListeners();//通过SPRING配置多个实现类,循环执行中的方法。

        if(validators!=null&&validators.size()>0){
            for(Iterator itr=validators.iterator();itr.hasNext();){
                TaskListener listener=(TaskListener)itr.next();
                listener.afterFinish();
            }

        }
        logger.info("结束完成任务后的处理...");
    }    

}
 
==========================
对于    validators 的处理

public interface TaskListener {

public static final String BEAN_ID ="taskListerManager";
   
    public int onDialing();
    public int beforeFinish();
    public int afterFinish();   
   public int afterHangup();
}


实现类中一个
public class QuotaChecker implements ProjectListener, TaskListener {
       public void onStartup() {
。。。。。。。。。。。。。
}

public int onDialing() {
。。。。。。。。。。。。。。。。。。。。
return “”;
}

public int beforeFinish() {
          。。。。。。。。。。。。。。。。。。

return QUOTA_CHECK_SUCCESS;
}

public int afterFinish() {
。。。。。。。。。。。。。。。。。。。。。。。。。
return QUOTA_CHECK_SUCCESS;
}

    /**
        * @param
     */
    public int afterHangup() {
    return 0;
    }

public void onEnd(String projectId) {
// TODO Auto-generated method stub

}

public void onStop(String projectId) {
// TODO Auto-generated method stub

}



}


}

通过SPRING配置多个实现类,循环执行中的方法。
在实现类执行系列准备工作干什么,进行中干什么,进行完成后干什么
不同业务类实现这些方法,在处理一件事情后可以自动实现后面的工作。






分享到:
评论

相关推荐

    spring3配置quartz定时任务

    1. **定义作业**:作业是需要定时执行的任务,可以创建一个实现了`org.quartz.Job`接口的类。例如,我们可以创建一个名为`MyJob`的类: ```java public class MyJob implements Job { @Override public void ...

    spring java 定时器 执行两次 quartz

    1. **多实例问题**:如果你的应用部署在多个服务器或容器上,没有正确地配置集群,可能导致每个实例都独立调度任务。 2. **配置错误**:Spring配置中的`@Scheduled`注解或Quartz配置可能设置了错误的触发策略,使得...

    Spring Boot中使用Java实现文件批量下载与压缩功能

    为了解决这一问题,我们可以利用Spring Boot结合Java编写一个简单的服务端逻辑,实现将多个文件打包成一个ZIP文件供用户一次性下载。这种方案不仅可以提高用户体验,还能有效减少网络传输次数,提升效率。 #### 二...

    tomcat启动时定时循环执行内容(action)

    标题中的“tomcat启动时定时循环执行内容(action)”指的是在Tomcat服务器启动过程中,通过配置或者自定义代码实现一个定时任务,使得该任务在Tomcat启动后能够周期性地自动执行。这种机制常用于需要定期检查、更新...

    Spring实例化Bean顺序

    在Spring框架中,Bean的实例化顺序是一个关键概念,它涉及到如何管理和协调多个Bean的创建与依赖关系。这里,我们主要探讨的是Spring如何通过其IoC(Inversion of Control)容器来实例化Bean,并理解其背后的逻辑。 ...

    spring的bean加载顺序样例项目

    - Spring中的Bean是在`beans.xml`或Java配置类中通过`<bean>`标签定义的,每个Bean都有一个唯一的ID或名称。 - Bean的作用域包括单例(`singleton`)、原型(`prototype`)、请求(`request`)、会话(`session`)...

    springboot+spring data jpa+thymeleaf学习web项目整合demo源码

    1. **Spring Boot 整合**:Spring Boot 可以与多个框架集成,如 Spring MVC、Spring Data 和 Thymeleaf。这个项目演示了如何将这些组件一起配置,以构建一个完整的 Web 应用。 2. **Spring Data JPA 配置**:在 ...

    Spring循环依赖案例问题详解.docx

    在Spring框架中,循环依赖(Circular Dependency)是指两个或多个bean之间形成了一种相互引用的关系,使得它们在初始化过程中无法独立完成实例化。在上述案例中,`AuthorService`依赖于`BookService`,而`...

    Spring基础.pdf

    - **CGLib动态代理**:基于类的动态代理,适用于目标对象没有实现接口的情况,通过`Enhancer.create()`方法创建代理对象。 AOP的应用场景包括日志记录、性能监控、事务管理、权限控制等。通过创建对应的切面代理,...

    跟我学spring3(1-7)

    开发者不再手动创建对象,而是通过配置文件或注解让Spring容器来管理和创建对象。 3. **IoC容器基本原理** IoC容器负责读取配置元数据,创建和管理对象,并处理对象间的依赖关系。Spring提供了XML和注解两种方式...

    高级开发spring面试题和答案.pdf

    - `@Service`和`@Repository`通常用于标记实现类,而不是接口,因为Spring容器需要一个具体实现来实例化,而接口只是定义了行为,没有实现。 3. **依赖关系的描述** - `@Resource`、`@Autowired`和`@Inject`都是...

    A batch-processing system base on Spring Boot and Spring B.zip

    在Spring Boot中,通过配置类可以声明Job和Step,这些配置类会自动被Spring Boot的 ApplicationContext 扫描并注册。此外,Spring Boot的自动配置特性可以帮助我们轻松设置数据库连接、事务管理等。 在描述中提到的...

    Spring第七章:Spring+Mybatis快速开发素材(静态页+配置文件模板).rar

    Spring还提供了AOP功能,使得可以创建横切关注点,如日志记录、事务管理等,这些通常与业务逻辑无关但又需要在多个地方执行的操作。AOP通过定义切入点和通知来实现这一目标。 **Mybatis** Mybatis是一个基于Java的...

    在spring boot中使用java线程池ExecutorService的讲解

    ThreadPoolExecutor 是 Java 中的一个线程池实现类,它提供了四个构造方法,每个构造方法都可以用来创建一个线程池。其中,最后一个构造方法是最全的,它包括以下四个参数: 1. corePoolSize:核心线程数,表示...

    spring security 参考手册中文版

    29.4实现类 223 29.4.1 LdapAuthenticator实现 224 通用功能 224 认证者 225 PasswordComparisonAuthenticator 225 29.4.2连接到LDAP服务器 225 29.4.3 LDAP搜索对象 225 FilterBasedLdapUserSearch中 225 29.4.4 ...

    spring cloud hystrix原理介绍及使用

    降级逻辑可以通过HystrixCommand类中的fallbackMethod方法来指定,或者在响应式调用中使用fallback操作符。 Hystrix的入门相对简单,其提供的注解编程模型允许开发者通过极简的配置就能实现上述功能。对于开发者而...

    2023最新Spring全家桶面试题-图灵徐庶

    本文将对Spring全家桶面试题进行详细的解析,从Spring Framework到Spring MVC,涵盖了SpringIOC、AOP、事务、Beans等多个方面。 一、Spring Framework 1. 对Spring的理解:Spring是一个轻量级的Java应用程序框架,...

    Spring v3.0.0.RELEASE源码

    1. **依赖注入(Dependency Injection, DI)增强**:在Spring 3.0中,依赖注入进一步优化,支持了基于注解的配置,使得无需XML就能实现组件的装配。@Autowired注解可以自动匹配类型和名称,而@Qualifier注解则可以...

Global site tag (gtag.js) - Google Analytics