我对我的Maven项目,具有用户类的域图层,具有CRUD功能的服务的数据图层以及具有控制器类的Web图层具有Restful设计。但是,当我运行该项目,我得到以下错误:@Autowired注释与弹簧无法正常工作
javax.servlet.ServletException: Servlet.init() for servlet appServlet threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
........
java.lang.Thread.run(Thread.java:680)
root cause
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: ........service.UserService org.
bk.samples.mvc.UserController.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [se.
datalayer.guards.service.UserService] 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)}
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) ..........
root cause
org.springframework.beans.factory.BeanCreationException: Could not autowire field: .........service.UserService
org.bk.samples.mvc.UserController.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type
[se.datalayer.guards.service.UserService] 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)} ..........
root cause
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [.........service.UserService] 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)}
org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924)
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793) .......
然后我删除了@Autowired
注释,但得到的错误如下:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.NullPointerException
org.bk.samples.mvc.UserController.allUsers(UserController.java:32)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)..........
我userController
类是:
@Controller
@RequestMapping(value="/")
public class UserController
{
@Autowired
UserService userService;
@RequestMapping(value="/users", method=RequestMethod.GET)
public ModelAndView allUsers()
{
ModelAndView mvd= new ModelAndView();
Collection<User> allUsers= new ArrayList<User>();
allUsers= userService.findAllUsers();
System.out.println(allUsers);
mvd.addObject("allUsers", allUsers);
return mvd;
}
}
我不知道是什么导致了这个问题,我会很感激任何帮助。
我不知道它是如何是一个maven问题。注释在编译期间不会被查看,而是运行时间。这个错误主要是说你没有在其中定义'UserService'类的依赖性工件。 – CoolBeans
退一步 - 您试图简单地删除注释,并仍然期望能够运行,听起来像您不熟悉您正在使用的环境。请使用Spring进行标记; Maven与这个问题无关。 –
这不是一个问题,但我需要帮助,如果任何人都可以帮助我,我将不胜感激。 – user1067665