Java 创建名为的bean时出错,通过字段表示的依赖关系不满足,bean初始化失败;
我从TomCat那里得到一些错误,请帮助 org.springframework.beans.factory.unsatifiedpendencyException:创建名为“userController”的bean时出错:通过字段“userService”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.unsatifiedDependencyException: 创建名为“userserviceinpl”的bean时出错:通过字段“userDao”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.BeanCreationException: 创建名为“userDAO”的bean时出错:bean初始化失败嵌套异常为java.lang.AbstractMethodError 我的UserDAOJava 创建名为的bean时出错,通过字段表示的依赖关系不满足,bean初始化失败;,java,hibernate,maven,spring-mvc,tomcat,Java,Hibernate,Maven,Spring Mvc,Tomcat,我从TomCat那里得到一些错误,请帮助 org.springframework.beans.factory.unsatifiedpendencyException:创建名为“userController”的bean时出错:通过字段“userService”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.unsatifiedDependencyException: 创建名为“userserviceinpl”的bean时出错:通过字段“user
package dao;
import entities.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDAO extends CrudRepository<User, Integer> {
}
包dao;
导入实体。用户;
导入org.springframework.data.repository.crudepository;
导入org.springframework.stereotype.Repository;
@存储库
公共接口UserDAO扩展了crudepository{
}
我的userserviceImpl
package service.impl;
import beans.UserBean;
import dao.UserDAO;
import entities.User;
import service.EntityBeanConverter;
import service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDAO userDao;
@Autowired
private EntityBeanConverter converter;
@Override
public Iterable<UserBean> getAllUsers() {
Iterable<User> users = userDao.findAll();
List<UserBean> beanList = converter.convertToBeanList(users, UserBean.class);
return beanList;
}
@Override
public UserBean getUserById(Integer userId) {
Optional<User> user = userDao.findById(userId);
UserBean bean = converter.convertToBean(user, UserBean.class);
return bean;
}
@Override
public void saveUser(UserBean user) {
User userEntity = converter.convertToEntity(user, User.class);
userDao.save(userEntity);
}
@Override
public void deleteUser(Integer userId) {
userDao.deleteById(userId);
}
}
package service.impl;
导入bean.UserBean;
导入dao.UserDAO;
导入实体。用户;
导入服务.EntityBeanConverter;
导入服务.UserService;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Service;
导入org.springframework.transaction.annotation.Transactional;
导入java.util.List;
导入java.util.Optional;
@服务
@交易的
公共类UserServiceImpl实现UserService{
@自动连线
私有UserDAO UserDAO;
@自动连线
专用实体BeanConverter转换器;
@凌驾
公共Iterable getAllUsers(){
Iterable users=userDao.findAll();
List beanList=converter.convertToBeanList(users,UserBean.class);
返回beanList;
}
@凌驾
公共UserBean getUserById(整数userId){
可选用户=userDao.findById(userId);
UserBean=converter.convertBean(用户,UserBean.class);
返回豆;
}
@凌驾
公共void saveUser(UserBean用户){
User userEntity=converter.convertToEntity(User,User.class);
保存(userEntity);
}
@凌驾
public void deleteUser(整数用户ID){
userDao.deleteById(userId);
}
}
我的用户控制器
package controller;
import beans.UserBean;
import service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
class UserController {
@Autowired
private UserService userService;
@RequestMapping("/users.html")
public ModelAndView showUsersPage() {
ModelAndView modelAndView = new ModelAndView("users");
return modelAndView;
}
@RequestMapping("/update-user.html")
public ModelAndView updateUser(@RequestParam(name = "user_id") Integer userId) {
ModelAndView modelAndView = new ModelAndView("users");
UserBean user = userService.getUserById(userId);
modelAndView.addObject("user", user);
return modelAndView;
}
@RequestMapping("/delete-user.html")
public ModelAndView deleteUser(@RequestParam(name = "user_id") Integer userId) {
userService.deleteUser(userId);
ModelAndView modelAndView = new ModelAndView("redirect:users.html");
return modelAndView;
}
@RequestMapping(value = "/save-user.html", method = RequestMethod.POST)
public ModelAndView saveUser(UserBean user) {
userService.saveUser(user);
ModelAndView modelAndView = new ModelAndView("redirect:users.html");
return modelAndView;
}
@ModelAttribute(name = "userList")
private Iterable<UserBean> getUserList() {
Iterable<UserBean> userList = userService.getAllUsers();
return userList;
}
@ModelAttribute(name = "user")
private UserBean getEmptyUser() {
return new UserBean();
}
}
包装控制器;
导入bean.UserBean;
导入服务.UserService;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Controller;
导入org.springframework.web.bind.annotation.ModelAttribute;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestMethod;
导入org.springframework.web.bind.annotation.RequestParam;
导入org.springframework.web.servlet.ModelAndView;
@控制器
类用户控制器{
@自动连线
私人用户服务;
@请求映射(“/users.html”)
公共模型和视图showUsersPage(){
ModelAndView ModelAndView=新的ModelAndView(“用户”);
返回模型和视图;
}
@请求映射(“/update user.html”)
public ModelAndView updateUser(@RequestParam(name=“user\u id”)整数userId){
ModelAndView ModelAndView=新的ModelAndView(“用户”);
UserBean user=userService.getUserById(userId);
添加对象(“用户”,用户);
返回模型和视图;
}
@请求映射(“/delete user.html”)
public ModelAndView deleteUser(@RequestParam(name=“user\u id”)整数userId){
userService.deleteUser(userId);
ModelAndView ModelAndView=newmodelandview(“redirect:users.html”);
返回模型和视图;
}
@RequestMapping(value=“/save user.html”,method=RequestMethod.POST)
公共模型和视图保存用户(UserBean用户){
userService.saveUser(用户);
ModelAndView ModelAndView=newmodelandview(“redirect:users.html”);
返回模型和视图;
}
@ModelAttribute(name=“userList”)
私有Iterable getUserList(){
Iterable userList=userService.getAllUsers();
返回用户列表;
}
@ModelAttribute(name=“user”)
私有用户bean getEmptyUser(){
返回新的UserBean();
}
}
我不知道哪里可以找到我的错误问题,也许有人能帮我 您的DAO类引用了entity.User,但未包含在您的文章中。通过阅读堆栈跟踪,不满意的依赖关系会将您带到前面的每一层。在这种情况下,无法初始化在UserDao处结束。这里的依赖关系取决于用户对象。我认为您可能缺少一些Hibernate注释,或者在用户对象类中存在类型问题(整数/整数)或类似问题。我想看看您为组件扫描设置了哪个包?模块实体中的用户对象,模块dao和服务中的组件扫描(applicationContext文件)@H4X00RS,您对此做了什么?