Java 按计划运行所有派生DAO类的公共查询

Java 按计划运行所有派生DAO类的公共查询,java,jdbc,scheduling,dao,spring-jdbc,Java,Jdbc,Scheduling,Dao,Spring Jdbc,我有一个包含常用方法的抽象类: public abstract class AbstractDAO<T> implements IFindTradeDAO { @Autowired private JdbcTemplate jdbcTemplate; @Override public List<Trade> findOne(final int eventId) { return jdbcTemplate.query(

我有一个包含常用方法的抽象类:

public abstract class AbstractDAO<T> implements IFindTradeDAO {


    @Autowired
    private JdbcTemplate jdbcTemplate;


    @Override
    public List<Trade> findOne(final int eventId) {
        return jdbcTemplate.query(getOneQuery(), new Object[]{eventId}, new RowMapper());
    }

    @Override
    public List<Event> getAll() {
        return jdbcTemplate.queryForList(getAllQuery(), Event.class);
    }


    protected abstract String getOneQuery();

    protected abstract String getAllQuery();

}
如果我有这个类结构,我想使用

org.springframework.scheduling.annotation.Scheduled


我不太确定如何派生一个将调用所有组件的组件?有什么技术或例子可以用来实现这一点吗

我不是Java程序员,但在.NET中,您需要将它们全部放入某种类型的列表或数组中,并对每个项调用函数


因此,也许可以创建一个名为addFindTradeDao的方法,将每个方法添加到一个列表中。然后对这些项中的每一项调用该方法。

您是否尝试在GetAllEvents中同时注入TypeA和TypeB,并在processUnprocessedEvents中调用它们相应的方法?我对每种类型都有许多dao实现,并且自动连接和调用每种类型似乎很奇怪。
@Repository
public class TypeA extends AbstractDAO implements IFindTradeDAO {

    private static final String FIND = "sql/findA.sql";

    private static final String GET = "sql/getA.sql";


    @Override
    protected String getOneQuery() {
        return FIND;
    }

    @Override
    protected String getAllQuery() {
        return GET;
}

@Repository
public class TypeB extends AbstractDAO implements IFindTradeDAO {

    private static final String FIND = "sql/findB.sql";

    private static final String GET = "sql/getB.sql";


    @Override
    protected String getOneQuery() {
        return FIND;
    }

    @Override
    protected String getAllQuery() {

    }

}
   @Component
    public class GetAllEvents {

        @Scheduled
        public void processUnprocessedEvents() {
           //invoke getAllQuery for all DAOS and combine results

        }

    }