2017-07-14 10:37:26,898 WARN [org.springframework.web.context.support.XmlWebApplicationContext] - Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.library.service.LoginService com.library.controller.LoginController.loginService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.library.service.LoginService] 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.annotation.Qualifier(value=loginService)}Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.library.service.LoginService com.library.controller.LoginController.loginService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.library.service.LoginService] 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.annotation.Qualifier(value=loginService)}找不到'loginController的注入;contorller文件部分:
@Controller
public class LoginController {

@Autowired
@Qualifier("loginService")   //里面写的是bean的名字,与service的id一样。在longinservice的service里面的一样
private LoginService loginService;

@RequestMapping("/admin")
public ModelAndView loginAdmin(String name,String pwd,
ModelAndView mv,HttpSession session){
Manager admin = loginService.loginAdmin(name, pwd);
//查询到登入不为空
if (admin != null) {
session.setAttribute("admin", admin);
//定向到admin页面
mv.setView(new RedirectView("/BookApp/admin/index"));
}else{
mv.addObject("message","登入名或密码错误,请重新输入");
//重新设置view视图页面
mv.setViewName("wLoginAdmin");
}
return mv;
}
}LoginService接口:public interface LoginService {

public Manager loginAdmin(String name,String pwd);

public Reader loginUser(String barcode,String pwd);
}
实现接口:
@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
@Service("loginService")
public class LoginServiceImpl implements LoginMapper {

@Autowired
private LoginMapper loginMapper;

@Transactional(readOnly=true)
public Manager loginAdmin(String name, String pwd) {
/*
 * 调用DB层方法
 */
return loginAdmin(name, pwd);
}
}

解决方案 »

  1.   

    参照的http://www.cnblogs.com/wyq178/p/6815373.html
    配置文件:
    applicantionContent.xml
     <!-- mybatis:scan会将org.fkit.mapper包里的所有接口当作mapper配置,之后可以自动引入mapper类-->  
        <mybatis:scan base-package="com.wyq.Mapper" /> 
        <!-- new add -->
        <mybatis:scan base-package="com.library.mapper"/>
           
     <!-- 扫描org.fkit包下面的java文件,有Spring的相关注解的类,则把这些类注册为Spring的bean -->
        <context:component-scan base-package="com.wyq" />
        <!-- new add -->
        <context:component-scan base-package="com.library"></context:component-scan>
        <context:component-scan base-package="com.library.controller"></context:component-scan>
        <context:component-scan base-package="com.library.service.implement"></context:component-scan>
        
    <!-- 使用PropertyOverrideConfigurer后处理器加载数据源参数 -->
    <context:property-override location="classpath:db.properties"/> <!-- 配置c3p0数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"/>

    <!-- 配置SqlSessionFactory,org.mybatis.spring.SqlSessionFactoryBean是Mybatis社区开发用于整合Spring的bean -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
        p:dataSource-ref="dataSource"/>

    <!-- JDBC事务管理器 -->
    <bean id="transactionManager" 
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
     p:dataSource-ref="dataSource"/>

    <!-- 启用支持annotation注解方式事务管理 -->
    <tx:annotation-driven transaction-manager="transactionManager" />springConfig.xml<!-- 自动扫描该包,SpringMVC会将包下用了@controller注解的类注册为Spring的controller -->
    <context:component-scan base-package="com.wyq.Controller" />
    <!-- new add -->
    <context:component-scan base-package="com.library.controller"></context:component-scan>

    <!-- 设置默认配置方案 -->
    <mvc:annotation-driven />

    <!-- 使用默认的Servlet来响应静态文件比如css、html、js等文件 -->
    <mvc:default-servlet-handler />
    <!-- 视图解析器 -->
    <bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 前缀 -->
    <property name="prefix">
    <value>/WEB-INF/pages/</value>
    </property>
    <!-- 后缀 -->
    <property name="suffix">
    <value>.jsp</value>
    </property>
    </bean>

    <bean id="loginService" class="com.library.service.implement.LoginServiceImpl"></bean>
    web.xml<!-- 配置spring核心监听器,默认会以 /WEB-INF/applicationContext.xml作为配置文件 -->
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- contextConfigLocation参数用来指定Spring的配置文件 -->
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext*.xml</param-value>
    </context-param>

    <!-- 定义Spring MVC的前端控制器 -->
      <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/springmvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      
      <!-- 让Spring MVC的前端控制器拦截所有请求 -->
      <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
      <!-- 编码过滤器 -->
      <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
     </filter>
    <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
      

  2.   

    <context:component-scan base-package="com.wyq.Controller" />
    你只扫描这个包下的?那Service当然就扫描不到了
      

  3.   

    有写啊springConfig.xml<!-- 自动扫描该包,SpringMVC会将包下用了@controller注解的类注册为Spring的controller -->
    <context:component-scan base-package="com.wyq.Controller" />
    <!-- new add -->
    <context:component-scan base-package="com.library.controller"></context:component-scan>