/ / Spring - fonte de dados de tarefas agendadas - primavera, tarefas agendadas, datasource, applicationcontext

Fonte de dados de tarefas agendadas Spring - primavera, tarefas agendadas, datasource, applicationcontext

Eu quero fazer applicationContext dentro do método do agendador. é possível ? )

 <task:annotation-driven executor="executor" scheduler="scheduler"/>
<task:executor id="executor" pool-size="5"/>
<task:scheduler id="scheduler" pool-size="10"/>

E minha classe:

@Scheduled(fixedDelay=100)
public void doSomething() {

}

Como eu adiciono isso? :

private ApplicationContext applicationContext;
@Override
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException {

this.applicationContext = applicationContext;
}

Que use o código:

JDBCEntityDAO obj = (JDBCEntityDAO) applicationContext.getBean("taEntityDAO");

Ajuda por favor

Respostas:

3 para resposta № 1

Basta adicionar @Autowired ou qualquer outra dependênciaAnotação de injeção para suas classes de trabalho (aquelas com métodos anotados @Scheduled -). Se você precisar de uma referência ao ApplicationContext, faça seu trabalho implementar a interface ApplicationContextAware. Isso funcionará com o agendador nativo Spring. Se você usa Quartz, você terá que fazer um pouco mais de trabalho, veja aqui injetar referência de feijão em um trabalho de quartzo na primavera? . A propósito, você pode usar a anotação @Resourse para injetar beans pelo nome.