当前位置: 首页 > 知识库问答 >
问题:

异常在线程"main"org.springframework.beans.factory.NoSuchBean定义异常[重复]

向弘懿
2023-03-14

我正在尝试一个使用jdbc和Spring连接到数据库的例子,并得到下面的异常。请指教。

例外情况:

Aug 17, 2017 10:44:51 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6422b8ff: startup date [Thu Aug 17 22:44:51 IST 2017]; root of context hierarchy
Aug 17, 2017 10:44:51 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [spring.xml]
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'daoClass' is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:638)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1159)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:282)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:979)
    at org.manjosh.main.JdbcMain.main(JdbcMain.java:14)

主要类:

package org.manjosh.main;

import org.manjosh.dao.DaoClass;
import org.manjosh.model.Circle;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class JdbcMain {

    public static void main(String[] args){

        ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");

        DaoClass dao = ctx.getBean("daoClass",DaoClass.class);

        Circle circle = dao.getCirle(1);
        System.out.println(circle.getName());
        }

}

道类:

package org.manjosh.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.manjosh.model.Circle;
import org.springframework.stereotype.Component;
@Component
public class DaoClass {

    public Circle getCirle(int circleId){

        String driver = "oracle.jdbc.driver.OracleDriver";
        Connection conn = null;

        try{
        //step1 load the driver class  
        Class.forName(driver).newInstance();

        //step2 create  the connection object  
        conn =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","system");  

        //step3 create the statement object  
        PreparedStatement stmt=conn.prepareStatement("SELECT * FROM circle where ID =?");
        stmt.setInt(1, circleId);

        Circle circle = null;

        //step4 execute query  
        ResultSet rs=stmt.executeQuery();

        while(rs.next()){
            circle = new Circle(rs.getInt(circleId),rs.getString("name"));
            }
        rs.close();
        stmt.close();
        return circle;
            }
        catch(Exception e){
        throw new RuntimeException(e);
        }
        finally {
            try{
        conn.close();
                }
            catch(SQLException e){} 
            }   
        }

    }

spring xml:

<?xml version = "1.0" encoding = "UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">  

    <context:annotation-config/>
    <context:component-scan base-package = "org.manjosh.main"/>




</beans>

共有2个答案

寇甫
2023-03-14

<代码>

要解决NoSuchBean定义异常问题,请在spring.xml文件中进行以下更改

代替

<context:component-scan base-package = "org.manjosh.main"/>

具有

<context:component-scan base-package = "org.manjosh.dao,org.manjosh.main"/>

<context:component-scan base-package = "org.manjosh.dao"/>

或者

<context:component-scan base-package = "org.manjosh.*"/>

或者

<context:component-scan base-package = "*"/>
苗承
2023-03-14

spring中。xml,您已将组件扫描配置定义为

更改<代码>

 类似资料:
  • 最近我正在学习Spring框架。所以我正在尝试检查依赖注入在Spring框架中的工作原理。因此,我创建了一个新的java项目并使用基于构造函数XML的配置练习依赖注入代码。运行我的项目后,我收到了这个错误...... 类路径资源[com/mir00r/beans.XML]的XML文档中的第24行无效;嵌套异常为组织。xml。萨克斯。SAXParseException;行号:24;列数:9;cvc复

  • 我正在学习selenium并尝试运行以下代码,但它引发了异常。NoSuchFieldError:空字节数组。请帮助我理解这个简单的程序出了什么问题。 控制台: 异常线程"main"java.lang.NoSuchFieldError:EMPTY_BYTE_ARRAY

  • 我在Windows 10上使用Netbean上的JDK 14。在IDE环境中一切正常。但是,当我尝试从命令提示符编译和运行源文件时,我得到了。 系统变量中的PATH和CLASSPATH包含,。 如果我从命令提示符发出java-version,在java_主目录中,我会得到以下结果: 如果我从java_HOME\bin目录发布java-version,我会收到下面列出的另一条消息: 我不确定为什么?

  • 我正在看一张桌子。其中一列包含压缩(二进制)数据。我正在解压缩这些数据并存储在另一个RDD中。它给出了以下错误: 线程“main”组织中出现异常。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段2.0中的任务0失败1次,最近的失败:阶段2.0中的任务0.0丢失(TID 2,localhost,executor driver):java。util。同时发生的ExecutionEx

  • 我正在尝试创建一个实用程序类,以使用 java.util.扫描仪从标准控制台获取输入 在另一个类中调用静态方法时, 工作正常,但是下面的方法 会导致异常。 运行此命令会导致以下异常 我注意到的有趣的事情是,如果我注释掉第一个输入过程,数组输入工作正常。

  • 我正在尝试编译一个测试。avsc和avro模式文件转换为java代码。线程“main”org.apache.avro中出现异常。SchemaParseException:无法重新定义:test.record4 这个想法是record4应该在name4和name5中具有相同的类型 我的test.avsc是: