`

Spring 注入失败的原因

 
阅读更多

有一次写代码如下

  ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
  HarborBusiness service = (HarborBusiness) ctx.getBean("harborBusiness");

 

总是报no bean named

 

查了半天没查出来了,后来把前一个版本的工程拿来,一点一点的加功能

终于发现了,根本和工程没有一点关系,是 ctx.getBean("harborBusiness"); 这里写错了,

HarborBusiness它本身是个接口类,而以前的测试都是  ctx.getBean("harborBusinessImpl");这样的

HarborBusinessImpl这个才是真正的实现类,spring的注入的语法也是在这个类里写的

 

晕了。。。呵。。。

 

 

 

 

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'harborBusiness' is defined
 at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:387)
 at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:971)
 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:246)
 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
 at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
 at junit.com.gamesloc.bottle.business.impl.MsgBusinessImplTest.testAddMsg(MsgBusinessImplTest.java:14)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at junit.framework.TestCase.runTest(TestCase.java:164)
 at junit.framework.TestCase.runBare(TestCase.java:130)
 at junit.framework.TestResult$1.protect(TestResult.java:106)
 at junit.framework.TestResult.runProtected(TestResult.java:124)
 at junit.framework.TestResult.run(TestResult.java:109)
 at junit.framework.TestCase.run(TestCase.java:120)
 at junit.framework.TestSuite.runTest(TestSuite.java:230)
 at junit.framework.TestSuite.run(TestSuite.java:225)
 at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
 at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

 

 

 

分享到:
评论

相关推荐

    Web服务器端在Action、dao、service之外实现spring注入

    我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...

    因Spring AOP导致@Autowired依赖注入失败的解决方法

    Spring AOP 导致@Autowired 依赖注入失败的解决方法 Spring AOP(Aspect-Oriented Programming,面向切面编程)是一种编程技术,它允许开发者在不修改源代码的情况下,增加新的功能。然而,在使用 Spring AOP 时,...

    axis 和spring 集成

    这个主题涵盖了如何利用Spring的强大依赖注入(DI)和管理bean的能力,来增强Axis处理Web服务的功能。 Apache Axis是一个广泛使用的SOAP(简单对象访问协议)引擎,它允许开发者创建、部署和使用Web服务。Spring...

    spring的setter注入和构造注入(XML讲解以及常见错误)

    1. **属性名与setter方法不匹配**:Spring会根据属性名查找对应的setter方法,如果两者不一致,会导致注入失败。 2. **未提供setter方法**:如果在XML配置中指定了注入的属性,但类中没有对应的setter方法,Spring...

    spring注解注入示例详解.pdf

    如果Spring上下文中存在多个相同类型的Bean时,注入会失败,并抛出异常。如果需要在存在多个匹配的Bean时指定使用哪一个,可以使用@Qualifier注解配合@Autowired使用。 例如: ```java @Autowired @Qualifier(...

    spring注入web端校验类

    标题中的“spring注入web端校验类”指的是在Spring框架中,如何将验证逻辑整合到Web应用程序中,以便对用户输入的数据进行有效性检查。在Web应用中,数据验证是至关重要的,可以防止非法数据进入系统,确保数据的...

    springboot整合spring-kafka kafkaTemplate

    本项目里面简单写了单挑信息、批量信息的web接口测试消息发送,并且注入了两个bean,实现KafkaListener两种不同模式{containerFactory="batchFactory"},{containerFactory = "batchFactoryOff"}。

    struts2+spring+hibernate整合中spring注入出错。页面中报空指针异常。高手来看看怎么决绝。

    标题提到的问题是“struts2+spring+hibernate整合中spring注入出错,页面中报空指针异常”,这通常是由于Spring的依赖注入没有正确配置导致的。 首先,让我们深入了解一下Struts2、Spring和Hibernate各自的核心概念...

    spring jersey整合后无法注入

    5. **类型安全的依赖注入**:如果使用了@Autowired注解,但没有指定注入的类型,可能会导致注入失败。例如: ```java @Autowired private MyService myService; // 没有指定类型,可能引发注入失败 ``` 应改...

    Spring 学习笔记《依赖注入》源文件

    在Java开发领域,Spring框架是不可或缺的重要组成部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名。依赖注入是面向对象设计的一种模式,它允许我们解耦组件之间的依赖关系,使代码更加灵活,...

    ssm例子一直报错userDao无法注入

    当试图注入`UserDao`时,如果出现注入失败,可能的原因有以下几点: 1. **配置文件错误**:检查Spring的配置文件(如`applicationContext.xml`或`beans.xml`),确保`UserDao`接口的实现类已经被正确地定义为bean,...

    关于mybatis mapper类注入失败的解决方案

    Mapper类注入失败的原因 -------------------- 在使用MyBatis时,Mapper类是MyBatis的核心组件之一。它负责将Java对象与数据库表之间的映射关系。然而,在某些情况下,Mapper类可能无法正确地注入到Spring容器中,...

    spring-ai-core 0.8.1

    这意味着你可以直接利用这些框架的模型,并通过Spring的依赖注入机制将它们注入到你的服务中。这种跨框架的兼容性使得项目可以灵活地选择最适合的AI工具,同时保持代码的整洁和可维护性。 在API设计上,Spring AI ...

    Spring整合其他ORM框架

    Spring 框架是 Java 开发中的一个核心组件,它为开发者提供了丰富的功能,包括依赖注入、面向切面编程、事务管理等。在企业级应用开发中,数据持久化是必不可少的一部分,ORM(Object-Relational Mapping)框架则...

    Java-Spring各种依赖注入注解的区别.doc

    在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心特性,它允许开发者将对象的创建和组装过程从代码中分离出来,提高了代码的可测试性和可维护性。Spring提供了多种注解来实现依赖注入,包括@...

    strut2+spring+springjdbctemplate做的简易登录系统

    在登录验证时,Action类会调用Spring服务层的接口,这个接口可能是由Spring的依赖注入机制创建并注入到Action中的。 Spring框架在这个项目中起到了核心的作用。首先,它通过依赖注入管理各个组件,如DAO(数据访问...

    spring循环注入异常问题的解决方案

    然而,在多例模式下,Spring不会提前暴露bean,因为多例bean不保证线程安全,这会导致setter循环注入失败,和构造器循环注入一样引发异常。为了解决这个问题,开发者需要手动打破循环依赖,例如删除或修改导致循环的...

    注册表单spring MVC+hibernate+spring+easyui

    本项目以Spring MVC作为MVC框架,Hibernate作为ORM(对象关系映射)工具,Spring作为服务管理和依赖注入容器,并结合EasyUI进行前端展示,构建了一个简洁而实用的注册表单。以下将详细讲解这些技术如何协同工作。 1...

    十分钟上手spring boot

    - Spring Boot通过依赖注入来实现组件之间的解耦。 **18. 使用@SpringBootApplication注解** - `@SpringBootApplication`注解包含了`@SpringBootConfiguration`、`@EnableAutoConfiguration`和`@ComponentScan`三...

Global site tag (gtag.js) - Google Analytics