相关代码如下:
具体代码有如下类:User.java:值对象
UserDAO.java dao接口
UserDAOImp dao接口实现类
UserService   service接口
UserServiceImp service接口实现类
UserController 控制器类,在这里调用业务逻辑。 
代码如下:1. User.javapackage apps.hibernatetest.ioc;public class User implements java.io.Serializable
{
            private String id;
            private String username;
            private String password;            public User(){}            public String getId()
            {
                      return id;
            }            public void setId(String id)
            {
                      this.id = id;
            }            public String getUsername()
            {
                      return username;
            }            public void setUsername(String username)
            {
                     this.username = username;
            }            public String getPassword()
            {
                      return password;
            }            public void setPassword(String password)
            {
                      this.password = password;
            }
}2. UserDAO.javapackage apps.hibernatetest.ioc;public interface UserDAO
{
    public void userAdd(User user);
}
3.UserDAOImp.java
package apps.hibernatetest.ioc;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;public class UserDAOImp extends HibernateDaoSupport  implements UserDAO
{
  public void userAdd(User user)
  {
        try
        {
            System.out.println("save="+getHibernateTemplate().save(user));
            getHibernateTemplate().save(user);
        }
          catch(Exception  e)
        {
             System.out.println("执行插入用户错误!");
        }
  }}
4. UserService.javapackage apps.hibernatetest.ioc;public interface UserService
{  public void userAdd(User user);
}5.UserServiceImp.java
package apps.hibernatetest.ioc;public class UserServiceImp
{
  private UserDAO userDAO;
  private User user = new User();
  public UserDAO getUserDAO()
  {
        return userDAO;
  }
  public void setUserDAO(UserDAO userDAO)
  {
        this.userDAO = userDAO;
  }
  public void userAdd(User user)
  {
      userDAO.userAdd(user);
  }
}
6.UserController.java
package apps.hibernatetest.ioc;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;
import javax.servlet.http.*;
import org.springframework.web.bind.RequestUtils;
import java.io.IOException;
import java.util.Map;
import java.util.*;
import java.util.HashMap;
import org.apache.commons.beanutils.BeanUtils;import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;public class UserController implements Controller
{
  private UserService userService;
  public void setUserService(UserService userService)
  {
        this.userService = userService;
  }  public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
 {
            String url="";
            url="test.jsp";            User u=new User();
            u.setUsername("11111");
            u.setPassword("1111");
            userService.userAdd(u);            return new ModelAndView(url);
 }}
6. SpringhibernateStudy-servlet.xml<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!--  - Application context definition for "springapp" DispatcherServlet.  -->
<beans>    
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName">
         <value>oracle.jdbc.driver.OracleDriver</value>
     </property>
    
    <property name="url">
     <value>jdbc:oracle:thin:@192.168.1.191:1521:yanek</value>
    </property>
    <property name="username">
     <value>test</value>
    </property>
    <property  name="password">
     <value>1234</value>
    </property>
    
  </bean>
  
  <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
   <property name="dataSource">
   <ref local="dataSource" />
   </property>
   <!--  HIBERNATE &#55259;&#56691;  //    &#1194;&#938;mappingResources,   &frac14; mappingDirectoryLocations-->
   <property name="mappingResources">
   <list>
   <value>User.hbm.xml</value>   </list>
   </property>   <property name="hibernateProperties">
   <props>
       <prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop> 
       <prop key="hibernate.show_sql">true</prop>
       <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
   </props>
   </property>
  </bean>
  
  <!-- DAO IoC  ,  HIBERNATE&#291;//-->
  <bean id="hibernateTemplate" class="org.springframework.orm.hibernate.HibernateTemplate">
    <property name="sessionFactory">
      <ref local="sessionFactory" />
     </property>
  </bean>
  
  <!--     &#1279;&#1717;  DAO,&#697; &#291;  //-->
  <bean id="UserDAO" class="apps.hibernatetest.ioc.UserDAOImp">
    <property name="hibernateTemplate">
       <ref local="hibernateTemplate" />
     </property>
  </bean>
    
  <!--    HIBERNATE transactionmanager,    -->
  <bean id="mytransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
    <property name="sessionFactory">
       <ref local="sessionFactory"/>
    </property>
  </bean>
  
  <!--     AOP   //-->
  <bean id="lxxProxyTemplate" abstract="true" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager">
      <ref local="mytransactionManager"/>
    </property>
    <property name="transactionAttributes">
      <props>
         <prop key="user*">PROPAGATION_REQUIRED</prop>
         <prop key="insert*">PROPAGATION_REQUIRED</prop>
         <prop key="del*">PROPAGATION_REQUIRED</prop>
         <prop key="up*">PROPAGATION_REQUIRED</prop>
         <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
         <prop key="dis*">PROPAGATION_REQUIRED,readOnly</prop>
      </props>
    </property>
  </bean>
   <bean id="userService" parent="lxxProxyTemplate">
    <property name="target">
    <bean class="apps.hibernatetest.ioc.UserServiceImp">
    <property name="userDAO"><ref local="UserDAO"/></property> 
    </bean>
    </property>
   </bean> <bean id="UserController" class="apps.hibernatetest.ioc.UserController">   
    <property name="userService">
 <ref bean="userService" />
 </property>
  </bean>
  
   <bean id="UserurlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
<property name="mappings">      
<props>
<prop key="/user.do">UserController</prop>
</props>
</property>
   </bean>
   
</beans>

解决方案 »

  1.   

    报错问题:userService 不能实例话 Error creating bean with name 'userService' defined in ServletContext resource [/WEB-INF/SpringhibernateStudy-servlet.xml]: Initialization of bean failed; nested exception is org.aopalliance.aop.AspectException: null
    java.lang.IllegalStateException: Unknown callback class 
      

  2.   

    <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    <servlet>
      

  3.   

    把public class UserServiceImp 改为
    public class UserServiceImp implements UserService