您的位置:首页 > 编程语言 > Java开发

Spring异常: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

2017-10-27 10:49 555 查看
这两天自己搭spingmvc,总是报错,找不到自动注册的bean

Could not autowire field: private lf.service.UserService lf.controllers.UserController.userService; 
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [lf.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)}

建一个单元测试,看看能不能跑起来,如果能跑起来,说明是web配置错误,如果不能说明类写的有问题。

[java] view
plain copy

  

类检查方面:
1.是否在加了@Controller  @Repository @Service 注解

[java] view
plain copy

4000

@Controller  

@RequestMapping(value = "/user")  

public class UserController {  

[java] view
plain copy

@Service  

public class UserServiceImpl implements UserService{  

[java] view
plain copy

@Repository  

public interface UserDao {  

2.spring-mvc的配置中 是否自动注册了controller类

[java] view
plain copy

<mvc:annotation-driven />  

<context:component-scan base-package="lf.controllers"/>  

3.spring的配置中,是否注册了用到的类

[java] view
plain copy

<context:annotation-config/>  

     <context:component-scan base-package="lf">  

            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>  

     </context:component-scan>  

4.如果用了mybatis,看看配置的路径是否正确

[java] view
plain copy

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  

    <property name="dataSource" ref="dataSource"/>  

    <property name="mapperLocations" value="classpath:mapper/*.xml"/>  

[java] view
plain copy

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

       <property name="basePackage" value="lf.dao"/>  

       <!--<property name="sqlSessionFactoryBeanName" value="lazySqlSessionFactory"/>-->  

   </bean>  

 
mapper的namespace是否正确

[java] view
plain copy

<mapper namespace="lf.dao.UserDao">  

    <resultMap id="BaseResultMap" type="lf.model.User">  

        <id property="id" column="id"/>  

如果还跑不起来,就可能是web.xml里面丢了listener

[java] view
plain copy

<listener>  

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  

</listener>  

我的目录如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐