spring autowiring无法打到我的DAO类方法

时间:2012-12-22 16:05:30

标签: java spring spring-mvc

无法点击我的DAO课程。下面是我的申请文件

    @Controller
    public class HelloWorldController1 {
        @Autowired
        EmpServiceIntf empService;

        public EmpServiceIntf getEmpService() {
            return empService;
        }

         public myMethod(){
            List<Employee> empList = new ArrayList<Employee>();
            empList = empService.getAllemp(abc,pqr);
          }


    --------------------my interface class-----------------

    public interface EmpServiceIntf {
    List<Employee> getAllemp(String abc, String pqr);
    }

    -------------my implementation class----------------

    public class EmpServiceImpl implements EmpServiceIntf {
    private EmpServiceDAO empDAO = new EmpServiceDAO ();
        public List<Employee> getAllemp(String abc, String pqr) {
            return empDAO.getAllemp(abc, pqr);
        }
    }

------------------------applicationContext.xml------------------------
<?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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

<!-- Activates various annotations to be detected in bean classes-->
<context:annotation-config />
<context:component-scan base-package="org.nea.rest.unsr" />
<context:component-scan base-package="org.nea.spring.services.implementations.Uniserv" />
<context:component-scan base-package="org.nea.spring.services.interfaces.uniservs" />


<bean id="uniservService"  class="org.nea.spring.services.implementations.Uniserv.UniservServiceJPAImpl" />


    <!--bean class="org.nea.rest.unsr.HelloWorldController1">
        <property name="uniservService" ref="uniservService"></property>
    </bean-->

<!-- Configures the annotation-driven Spring MVC Controller programming model.
Note that, with Spring 3.0, this tag works in Servlet MVC only! -->
<mvc:annotation-driven />

</beans>
----------------------------------

现在我的问题是;使用上面的配置,当我点击myMethod()然后它上升到我的EmpServiceImpl类方法并返回到我的HelloWorldController1类返回。但它没有点击我的EmpServiceDAO方法。任何人都帮助我在什么地方添加n以便它命中我的EmpServiceDAO getAllemp方法

1 个答案:

答案 0 :(得分:1)

这只是从“Controller”到“DaoImpl”的骨架示例。

@Controller - 为您的控制器 @Service - 为您服务 @Repository - 为你的Dao

@Controller
class YourController {
   @Autowire
   private YourService yourService;

   public String yourControllerMethod() {
       yourService.serviceMethod();
   }
}

interface YourService {
   void serviceMethod();
}

@Service
class YourServiceImpl implements YourService {
   @Autowire
   private YourDao yourDao;

   void serviceMethod(){
      yourDao.daoMethod();
   }
}

interface YourDao {
    void daoMethod();
}

@Repository
class YourDaoImpl implements YourDao {
    void daoMethod() {
    }
}

并在你的“spring-mvc.xml”中    <mvc:annotation-driven />

and 

<context:component-scan base-package="com.yourcompany.example" />

to drive @Controller, @Service and @Repository annotations.