解决方案 »

  1.   

    EmployeeServiceImpl头上加注解@Service,还有你把你的beans.xml文件内容贴出来.
      

  2.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
               http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
              http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
              http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     
     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
         <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/>
         <property name="url" value="jdbc:mysql://localhost:3306/bettertaste?useUnicode=true&amp;characterEncoding=UTF-8"/>
         <property name="username" value="root"/>
         <property name="password" value="root"/>
          <!-- 连接池启动时的初始值 -->
       <property name="initialSize" value="1"/>
       <!-- 连接池的最大值 -->
       <property name="maxActive" value="500"/>
       <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
       <property name="maxIdle" value="2"/>
       <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请一些连接,以避免洪峰来时再申请而造成的性能开销 -->
       <property name="minIdle" value="1"/>
       </bean>
      
       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
          <property name="dataSource" ref="dataSource"/>
          <property name="mappingResources">
          <list>
            <value>cn/itcast/bean/Employee.hbm.xml</value>
          </list>
          </property>
          <property name="hibernateProperties">
          <value>
              hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
              hibernate.hbm2ddl.auto=update
              hibernate.show_sql=false
              hibernate.format_sql=false
              hibernate.cache.use_second_level_cache=true
                    hibernate.cache.use_query_cache=false
                 hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
            </value>
         </property>
     </bean>
       <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
       </bean>
      <!-- 采用@Transactional注解方式使用事务 -->
      <tx:annotation-driven transaction-manager="txManager"/>
    </beans>@Service我加了呢~
      

  3.   

    你用的spring-beans-2.5啊,2.5需要手动创建配置Bean的啊!你换成3.x的吧
      

  4.   

    2.5支持注解的,按以下修改试试:@service("employeeDao") //这里尽量这样写
    public class EmployeeDaoImpl implements EmployeeDao{}@service("employeeService") //这里尽量这样写
    public class EmployeeServiceImpl implements EmployeeService{
    @Autowired
    private EmployeeDaoImpl employeeDao; //这里的属性名就要写employeeDao了@Override
    public void save(Employee employee) {
    employeeDao.save(employee);
    }
    }//bean.xml里需要声明包扫描(包名的位置取决于dao和service层最小共同包名):
    <context:component-scan base-package="包名"/>//测试这么写
    ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
    employeeService = (EmployeeService)ctx.getBean("employeeService");//注意:这里写employeeService