title: TransactionManager is null
body: <p>i cant get <code>@Transactional</code> to work.
  i have in <code>applicationContext.xml</code>:</p>
  
  <pre><code>&lt;bean
      id="transactionManager"
      class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;
      &lt;property
          name="sessionFactory"
          ref="sessionFactory" /&gt;
      &lt;property
          name="dataSource"
          ref="dataSource"&gt;
      &lt;/property&gt;
  &lt;/bean&gt;
  </code></pre>
  
  <p>the above transaction manager isn't injected anywhere.</p>
  
  <p>i have in spring-servlet.xml:</p>
  
  <pre><code>&lt;!-- Allows transaction to be demarcated using @Transactional within classes.--&gt;
  &lt;tx:annotation-driven
      mode="proxy"
      proxy-target-class="true" /&gt;
  </code></pre>
  
  <p>i have a facade bean which has few DI's</p>
  
  <pre><code>&lt;!-- Bean for getting a handle onto the DAO's for accessing the database. --&gt;
  &lt;bean id="evoDaoFacade" class="com.xxx.yyy.zzz.discovery.hibernate.EvoTAMDAOFacade"&gt;
  ...
      &lt;property name="topoObjectDao" ref="topoObjectDao"&gt;&lt;/property&gt;
      &lt;property name="sessionFactory" ref="sessionFactory"&gt;&lt;/property&gt;
  </code></pre>
  
  <p>in my code i get the above facade into my nonspring instatiated class by :
  in <code>spring-servlet.xml</code></p>
  
  <pre><code>&lt;bean
      id="ApplicationContextProvider"
      class="com.xxx.yyy.zzz.config.ApplicationContextProvider"&gt;
  &lt;/bean&gt;
  </code></pre>
  
  <p>in code:</p>
  
  <pre><code>EvoTAMDAOFacade evoDao = (EvoTAMDAOFacade) ApplicationContextProvider.getBean("evoDaoFacade");
  </code></pre>
  
  <p>but when i go to use the DAo accessible by facade via:</p>
  
  <pre><code>TopoObject topoobj = evoDao.getTopoObjectDao().findById(topoId);
  </code></pre>
  
  <p>where the findById is as follows:</p>
  
  <pre><code>@Transactional
  public TopoObject findById( TopoObjectId id) {
          log.debug("getting TopoObject instance with id: " + id);
          try {
              TopoObject instance = (TopoObject) sessionFactory.getCurrentSession()
                      .get("com.xxx.yyy.zzz.discovery.hibernate.TopoObject", id);
              return instance;
          } catch (RuntimeException re) {
              log.error("get failed", re);
              throw re;
          }
      }
  </code></pre>
  
  <p>i get hibernate exception saying org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here</p>
  
  <p>what is wrong with my <code>@transactional</code> usage?</p>