Estou com uma dúvida, finalizei o curso Spring MVC I e comecei a fazer alguns testes e me deparei com a seguinte dúvida, como eu faço pra colocar uma tarefa para executar dentro do projeto. Imagine que ao final do dia quero receber um e-mail com as vendas aprovadas. mas quero receber isso de forma automática.No meu caso fiz alguns testes a tarefa executa mas não consigo chamar a minha DAO de maneira correta podem me ajudar a injetar de maneira certa a DAO na minha tarefa.
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.casadocodigo.loja.task;
import br.com.casadocodigo.loja.dao.ProdutoDAO;
import br.com.casadocodigo.loja.models.Produto;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import org.springframework.beans.factory.annotation.Autowired;
/**
 *
 * @author Douglas
 */
@Singleton
public class TasktScheduler {
    @Autowired
    private ProdutoDAO dao;
    @Schedule(second = "*/10", minute = "*", hour = "*", persistent = false)
    private void sendEmail(){
        System.out.println("Send E-mail");
        Produto produto = new Produto();
        produto.setTitulo("Teste");
        produto.setDescricao("Teste descrição");
        produto.setPaginas(10);
        dao.gravar(produto);  Erro 
    }
}
Porém ocorre erro na linha Caused by: java.lang.NullPointerException at br.com.casadocodigo.loja.task.TasktScheduler.sendEmail(TasktScheduler.java:34)