Activiti任务监听器调用SSM DAO层

我用jeesite平台想开发一个学生提交作业给老师的工作流,工作流中通过任务监听器动态设置任务执行人(老师)框架是spring +spring mvc+ mybatis + mysql 任务监听器通过实现TaskListener接口的类并通过可视化工具中在老师TASK节点设置了create时调用该类

监听器的代码如下

  @Component 
  @Service
  public class Teacherlisten extends CrudService<StudentToTeacherDao, StudentToT   eacher> implements TaskListener{
      private String userId;
      private StudentToTeacher st;
      private String assignee;
      private static final long serialVersionUID = 1L;
      @Override
      public void notify(DelegateTask delegateTask){
          userId = delegateTask.getVariable("apply").toString();
              st=dao.findteacher(userId);
         assignee=st.getTeacher();
         delegateTask.setAssignee(assignee);
     }
 }



下面为CrudService自动装配DAO的代码

  @Transactional(readOnly = true)
 public abstract class CrudService<D extends CrudDao<T>, T extends DataEntity<T>> extends BaseService {

  /**
     * 持久层对象
      */
     @Autowired
    protected D dao;

我的设想是通过调用DAO方法访问数据库查询学生对应的老师,然后将执行人设置为该老师,但是遇到的问题是自动装配DAO时 值为NULL,原因可能是监听器与Spring 加载时出问题,已经尝试过很多方法,最后使用JDBC实现的,但是mybatis的框架在这里没用上,希望大神能帮小弟一下,指点一下如何在监听器中能够将Spring与mybatis整合的DAO层引进来。

http://blog.csdn.net/v_will/article/details/78001453