如何在 Spring MVC 的控制器中使用 DAO?
Posted
技术标签:
【中文标题】如何在 Spring MVC 的控制器中使用 DAO?【英文标题】:How can I use a DAO inside a Controller in Spring MVC? 【发布时间】:2014-10-16 01:15:12 【问题描述】:在 Spring MVC 项目中,我有一个 DAO 类 myproj.models.UserDAO
:
@Repository
@Transactional
public class UserDAO
// UserDAO methods ...
我应该在控制器中使用它,比如myproj.controllers.UserController
:
@Controller
public class UserController
// UserController methods ...
@RequestMapping(value="/user")
public String create(String user)
// Here I want to use the UserDAO
// ...
如何创建 UserDAO 对象的实例并在控制器方法中使用它?
【问题讨论】:
只是@Autowire UserDAO 您能展示一下您的 Spring 配置吗? 【参考方案1】:你可以尝试关注
@Repository
@Transactional
public class UserDAO
// UserDAO methods ...
控制器:
@Controller
public class UserController
@Autowired //this will give you the reference to UserDAO
UserDAO userDao;
// UserController methods ...
@RequestMapping(value="/user")
public String create(String user)
// Here I want to use the UserDAO
userDao.userDaoMethod();
// ...
有关@Autowired 的更多信息,请探索this
【讨论】:
我用你的代码试过了,我得到这个错误:Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private myproj.models.UserDAO myproj.controllers.UserController.userDao;
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [myproj.models.UserDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: @org.springframework.beans.factory.annotation.Autowired(required=true)
确保您正在自动装配 UserDAO?
是的,在控制器内部我只有那个自动接线。
您是否完全按照代码中的说明进行操作?【参考方案2】:
用户Autowired
注解注入你的DAO的一个bean实例:
@Controller
public class UserController
@Autowired
UserDAO userDao;
@RequestMapping(value="/user")
public String create(String user)
userDao.method();
【讨论】:
以上是关于如何在 Spring MVC 的控制器中使用 DAO?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring MVC 中基于控制器和操作方法创建 URL?
如何在 Spring MVC 控制器中接收 multipart/form-data?
如何访问 Spring MVC REST 控制器中的 HTTP 标头信息?