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);
}
}
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);
}
}
解决方案 »
- ajax请求action后,数据存放在session中,jsp页面通过el获取数据,可是第一次登录总
- 求SSH做购物车的指教
- 关于hibernate处理大型对象的问题,为什么读取出来的都是内存地址??数据库为mysql
- 我独立启动weblogic能用.可是在eclipse+myeclipse启动中提示license出错
- 请问getServletConfig().getServletContext().getInitParameter("ResourcePort");什么意思
- [100分急等]在struts和spring那些属于业务逻辑层,那些属于事务层
- tomcat下https双向认证,无法访问,在线急等
- 如何在一段文本中检索某个字符串的数量呢?
- 再贴中华网面试题目,你能做出多少?
- spring + jspsmartupload 一直有空指针异常怎么处理?
- 一个条件是Double加一个条件是String 用HibernateTemplate这么查询
- Service层需不需要重新NEW?
配置文件:
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>
你只扫描这个包下的?那Service当然就扫描不到了
<context:component-scan base-package="com.wyq.Controller" />
<!-- new add -->
<context:component-scan base-package="com.library.controller"></context:component-scan>