Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NoSuchBeanDefinitionException:找不到符合条件的bean类型

NoSuchBeanDefinitionException:找不到符合条件的bean类型
EN

Stack Overflow用户
提问于 2015-09-15 00:06:56
回答 3查看 8.2K关注 0票数 0

我正在制作一个Spring + Hibernate + Maven项目。在基本登录后,我尝试使用注释,但被困在那里。我已经尝试了一切可能的方法,仍然无法摆脱这个错误NoSuchBeanDefinitionException:没有类型为依赖项找到的限定bean

以下是配置:

控制器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.pnpjunction.thefloorplan.controller;

@Controller
@RequestMapping(value = "/ProceedWithLogin")
public class LoginController {

@Autowired
AdminService adminService;

@RequestMapping(value = "/uthja", method = RequestMethod.POST)
public ModelAndView doLogin(@RequestParam("name") String name,
        @RequestParam("password") String password) {
    String message = "";
    if (adminService.doAuthenticate(name, password)) {
        // Authentication successful
        message = "Welcome!!";
    } else {
        // Authentication failed
        message = "Not Welcome!!";
    }
    return new ModelAndView("results", "message", message);

}}

服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.pnpjunction.thefloorplan.service;

public interface AdminService {

boolean doAuthenticate(String name, String password);
}

ServiceImplementation

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.pnpjunction.thefloorplan.serviceimpl;

@Service("AdminServiceImpl")
public class AdminServiceImpl implements AdminService {

@Override
public boolean doAuthenticate(String name, String password) {
    return true;
}}

web.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<servlet>
 <servlet-name>theFloorPlan</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet
 </servlet-class>
 <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>
        WEB-INF/theFloorPlan-servlet.xml
        WEB-INF/spring-conf/spring.xml
 </param-value>
 </init-param>
  <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
 <servlet-name>theFloorPlan</servlet-name>
 <url-pattern>/</url-pattern>
</servlet-mapping>
 <listener>
     <listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>

Spring.xml(截断版本)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   <mvc:annotation-driven />
   <context:annotation-config />
   <context:component-scan base-    package="com.pnpjunction.thefloorplan.controller" />
    <context:component-scan base-package="com.pnpjunction.thefloorplan.dao" />
    <context:component-scan base-package="com.pnpjunction.thefloorplan.service" />

这是我得到的错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2015-09-15 13:00:06,575 [org.springframework.web.servlet.DispatcherServlet] Context initialization failed
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: com.pnpjunction.thefloorplan.service.AdminService com.pnpjunction.thefloorplan.controller.LoginController.adminService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.pnpjunction.thefloorplan.service.AdminService] 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)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    at javax.servlet.GenericServlet.init(GenericServlet.java:212)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:950)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4122)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4421)
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
    at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
    at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
    at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
    at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
    at com.sun.proxy.$Proxy39.start(Unknown Source)
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
    at org.jboss.system.ServiceController.start(ServiceController.java:460)
    at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
    at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
    at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
    at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

当我从Controller代码中删除@Autowired注释时,它工作得很好,这意味着问题归结于注释。据我所想,保存服务代码的包不是由spring容器扫描的,但是在整个过程中,我不明白为什么。

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-15 00:14:12

由于服务的实现在包com.pnpjunction.thefloorplan.serviceimpl中,所以必须将该包添加到组件扫描中。因此,在Spring中添加<context:component-scan base-package="com.pnpjunction.thefloorplan.serviceimpl" />

票数 2
EN

Stack Overflow用户

发布于 2015-09-15 00:13:47

您需要将@Service("AdminServiceImpl")修改为@Service("adminService"),因为它正在寻找名称为adminService的bean。

票数 0
EN

Stack Overflow用户

发布于 2017-02-14 23:21:37

所有要自动读取的bean必须在组件扫描过程中可见的包内,可以使用注释或上下文条目。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
context:component-scan base-package="com.pnpjunction.thefloorplan"/>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@ComponentScan(basePackages = {"com.pnpjunction.thefloorplan"} )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32580867

复制
相关文章
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type
错误信息: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [ah.szxy.ego.item.service.CarItemService] 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)}
时间静止不是简史
2022/05/06
1.2K0
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'userService' availab
程裕强
2018/01/02
6.4K0
用UtralEdit批量删除符合条件的行
在分析SUMO的路网xml文件的时候,希望导入excel之前能够先简化一下。譬如像下面这样的,我们希望去掉外面的edge属性,只留下里面的lane节点。
钱塘小甲子
2019/01/29
2K0
MySQL随机查询符合条件的几条记录
随机查询,方法可以有很多种。比如,查询出所有记录,然后随机从列表中取n条记录。使用程序便可实现。可是程序实现必须查询出所有符合条件的记录(至少是所有符合条件的记录id),然后再随机取出n个id,查询数据库。但是效率毕竟没有数据库中直接查询得快。下面介绍MySQL中怎样随机查询n条记录。
星哥玩云
2022/08/16
3.9K0
Excel 输出符合条件的所有数据
<?php /* * @Author: Qicloud * @Title:ExcelApi * @Project:输出符合条件的所有数据 * @Date: 2021-03-02 01:55:4
Qicloud
2022/01/27
1.2K0
Spring源码学习:一篇搞懂@Autowire和@Resource注解的区别
最近在刷到很多文章讲解Spring IOC依赖注入时@Autowire和@Resource注解的区别,不同的文章总结出来的点有异同,所以还是看源码自己总结一下其两者的区别,及其用法。
@猪大肠
2023/02/16
1.9K0
Spring源码学习:一篇搞懂@Autowire和@Resource注解的区别
乘积求和及符合某个条件的乘积求和
如何得到两个数组的乘积求和呢??案例如下: 已知每个地市的销售单价和销售数量,需要知道整个表的销售总金额,怎么做??? 普通青年做法: 小编客观公正的评价:普通青年通过加一个辅助列,然后使用Sum
用户1332619
2018/03/08
5.5K0
乘积求和及符合某个条件的乘积求和
SpringBoot-Bean条件注入
  之前有篇文章Springboot 排除不想加载的配置只是排除,如果有些复杂场景需要根据条件来判断 就需要Spring 支持的另外一种方式 ——@Conditional注解。
OPice
2019/11/04
9540
@ConditionalOnExpression多条件bean生效
当一个接口有多个实现,需要根据配置项选择bean时,可以使用@ConditionalOnProperty,但是只能判断一个条件。
IT云清
2021/12/09
1.9K0
BeanFactory接口注释阅读
平时用spring忙着进行业务开发,对于这个BeanFactory接口看了很多篇文章介绍,但是感觉还是对它停留在表面,还是觉得要静下来一步一步的学习,那就先从阅读BeanFactory的接口注释说明开始吧,注释代表的是官方也是最权威的
在水一方
2022/06/14
2530
BeanFactory接口注释阅读
js删除数组对象中符合条件的数据
var data = [{}, {}, {}, {Id:1}] var datawilldele = [];//2,4,5 data.forEach(function (v, i,arry) { if ($.isEmptyObject(v)) { datawilldele.push(i); } }); for (var i = 0; i < datawilldele
FreeTimeWorker
2020/08/31
5.9K0
Swift 泛型之条件性符合协议
Swift 泛型条件性符合(Conditional conformances) 表示泛型类型只有在其类型参数满足某些要求时才符合特定协议的概念。
韦弦zhy
2021/04/08
1.5K0
PathMatchingResourcePatternResolver通过适配符寻找符合条件的java类
项目中,有时需要通过特定的字符寻找特定的类,如mybatis,可以通过适配符寻找要扫描的目录。 我们自己也可以通过适配符寻找到自己想要的类,具体代码如下:
星痕
2018/09/12
1.6K0
什么?left join 的 on 条件失效了?查出了不符合条件的数据?
最近发现很多人对 left join 的 on 条件的作用有误解,导致出现 Bug。 由于很多人都不太注意这问题,很容易造成故障。 下面我们简单复现这个问题,并解释为什么会这样,希望大家日常开发中万分小心。
明明如月学长
2023/04/21
1.6K0
什么?left join 的 on 条件失效了?查出了不符合条件的数据?
Golang MongoDB Driver 更新符合条件的数组元素的字段
在 MongoDB 的 Shell 里修改文档里某个符合条件的数组里的值的字段,可以这样:
饶文津
2020/08/05
4.1K0
Spring的@Autowired依赖注入原来这么多坑!
经常会遇到,required a single bean, but 2 were found。
JavaEdge
2021/12/07
6480
Spring的@Autowired依赖注入原来这么多坑!
springboot根据不同的条件创建bean,动态创建bean,@Conditional注解使用
这个需求应该也比较常见,在不同的条件下创建不同的bean,具体场景很多,能看到这篇的肯定懂我的意思。
天涯泪小武
2019/01/17
8.1K0
谈谈 Spring 中的 NoSuchBeanDefinitionException
org.springframework.beans.factory.NoSuchBeanDefinitionException 是很常见的异常,可以说绝大多数使用过 Spring 的人都曾遇到过它。本文旨在总结下NoSuchBeanDefinitionException(以下简称 NSBDE)的含义,哪些情况下可能抛出 NSBDE,和如何解决(文中配置均用 JavaConfig)。
Java小咖秀
2020/11/05
8.1K2
Spring系列二:IoC 容器
Spring IoC容器是Spring框架的核心。只需要进行简单的容器配置,就可以将创建对象,使用对象,销毁对象联系在一起,从而管理从创建对象到销毁对象的整个生命周期。Spring容器使用依赖项注入(DI)来管理组成应用程序的组件。
java干货
2021/02/19
4450
Spring系列二:IoC 容器
java: 不兼容的类型: 推断类型不符合上限
网上的错误引导是修改Intellij IDEA的java compile方式,由javac改为Eclipse,这样是不会报这个错误了,但是会引发新的错误,新错误是不能识别lombok的@slf4j注解的log对象。
在下是首席架构师
2022/07/08
4.1K0

相似问题

NoSuchBeanDefinitionException:找不到依赖类型的合格bean

11

Spring测试抛出org.springframework.beans.factory.NoSuchBeanDefinitionException:没有符合条件的bean类型

11

找不到符合`MessagesApi`条件的bean

15

原因: NoSuchBeanDefinitionException: xxx类型的合格bean没有要求至少有一个符合自动选择条件的bean。

21

NoSuchBeanDefinitionException:没有类型的合格bean可用:应至少有1个符合自动挂线候选条件的bean

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文