java - NoSuchBeanDefinitionException : No bean named 'triangle' is defined

标签 java spring

我是 Spring 的新手。我得到了

NoSuchBeanDefinitionException: No bean named 'triangle' is defined

使用简单的 Java 应用程序。

我收到以下错误消息

Jul 20, 2014 7:44:44 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@383118: startup date [Sun Jul 20 07:44:44 EDT 2014]; root of context hierarchy
Jul 20, 2014 7:44:44 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@47eaec: defining beans []; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'Triangle' is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:570)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1108)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:278)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117)
    at com.springDemo.main.DrawingApp.main(DrawingApp.java:22)

我的contextBean.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="triangle"  class="com.springDemo.main.Triangle1" >
        <property name="type" value="Equilateral" /> 
    </bean >

</beans>

DrawingApp.java

package com.springDemo.main;

import org.springframework.core.io.*;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DrawingApp {

    private static ApplicationContext context;

    static String[] springConfig  = 
    {   
        "classpath::*/com/springDemo/main/contextBean.xml"           
    };

    public static void main(String[] args)
    {

        context = new ClassPathXmlApplicationContext(springConfig);
        Triangle triangle =( Triangle )context.getBean("triangle");
        triangle.draw();
    }
}

最佳答案

已经使用 ClassPathXmlApplicationContext 在类路径中查找,因此无需添加 classpath::*

只需删除它,您的问题就会消失。

ctx = new ClassPathXmlApplicationContext("com/springDemo/main/contextBean.xml");

您可以尝试使用 FileSystemXmlApplicationContext 以及必须使用 classpath:

的地方
ctx = new FileSystemXmlApplicationContext("classpath:com/springDemo/main/contextBean.xml");

关于java - NoSuchBeanDefinitionException : No bean named 'triangle' is defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850252/

相关文章:

java - 我无法在 cmd 中生成 CUP 解析器和 JFlex 扫描器

java - 在Java中为24小时时间添加冒号?

mysql - 未定义 PlatformTransactionManager 类型的合格 bean,仅当它不在内存中时才会发生错误

java - 如何在 SpringData MongoDb Java bean 中映射二进制数据?

java - Spring安全不允许资源,登录后浏览器只显示一个css文件?

java - jFreeChart:XYPlot 中的垂直网格线?

java - 在 Java 中创建 alpha 图像

java - 当应用程序进入后台时,我应该在哪里启动一个应该触发的 Activity ?

java - 为什么无法解析我的 com.vaadin.UI 导入?

java - Spring MVC - 仅允许来自本地主机的请求到特定 Controller