有一次写代码如下
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)
分享到:
相关推荐
我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...
Spring AOP 导致@Autowired 依赖注入失败的解决方法 Spring AOP(Aspect-Oriented Programming,面向切面编程)是一种编程技术,它允许开发者在不修改源代码的情况下,增加新的功能。然而,在使用 Spring AOP 时,...
这个主题涵盖了如何利用Spring的强大依赖注入(DI)和管理bean的能力,来增强Axis处理Web服务的功能。 Apache Axis是一个广泛使用的SOAP(简单对象访问协议)引擎,它允许开发者创建、部署和使用Web服务。Spring...
1. **属性名与setter方法不匹配**:Spring会根据属性名查找对应的setter方法,如果两者不一致,会导致注入失败。 2. **未提供setter方法**:如果在XML配置中指定了注入的属性,但类中没有对应的setter方法,Spring...
如果Spring上下文中存在多个相同类型的Bean时,注入会失败,并抛出异常。如果需要在存在多个匹配的Bean时指定使用哪一个,可以使用@Qualifier注解配合@Autowired使用。 例如: ```java @Autowired @Qualifier(...
标题中的“spring注入web端校验类”指的是在Spring框架中,如何将验证逻辑整合到Web应用程序中,以便对用户输入的数据进行有效性检查。在Web应用中,数据验证是至关重要的,可以防止非法数据进入系统,确保数据的...
本项目里面简单写了单挑信息、批量信息的web接口测试消息发送,并且注入了两个bean,实现KafkaListener两种不同模式{containerFactory="batchFactory"},{containerFactory = "batchFactoryOff"}。
标题提到的问题是“struts2+spring+hibernate整合中spring注入出错,页面中报空指针异常”,这通常是由于Spring的依赖注入没有正确配置导致的。 首先,让我们深入了解一下Struts2、Spring和Hibernate各自的核心概念...
5. **类型安全的依赖注入**:如果使用了@Autowired注解,但没有指定注入的类型,可能会导致注入失败。例如: ```java @Autowired private MyService myService; // 没有指定类型,可能引发注入失败 ``` 应改...
在Java开发领域,Spring框架是不可或缺的重要组成部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名。依赖注入是面向对象设计的一种模式,它允许我们解耦组件之间的依赖关系,使代码更加灵活,...
当试图注入`UserDao`时,如果出现注入失败,可能的原因有以下几点: 1. **配置文件错误**:检查Spring的配置文件(如`applicationContext.xml`或`beans.xml`),确保`UserDao`接口的实现类已经被正确地定义为bean,...
Mapper类注入失败的原因 -------------------- 在使用MyBatis时,Mapper类是MyBatis的核心组件之一。它负责将Java对象与数据库表之间的映射关系。然而,在某些情况下,Mapper类可能无法正确地注入到Spring容器中,...
这意味着你可以直接利用这些框架的模型,并通过Spring的依赖注入机制将它们注入到你的服务中。这种跨框架的兼容性使得项目可以灵活地选择最适合的AI工具,同时保持代码的整洁和可维护性。 在API设计上,Spring AI ...
Spring 框架是 Java 开发中的一个核心组件,它为开发者提供了丰富的功能,包括依赖注入、面向切面编程、事务管理等。在企业级应用开发中,数据持久化是必不可少的一部分,ORM(Object-Relational Mapping)框架则...
在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心特性,它允许开发者将对象的创建和组装过程从代码中分离出来,提高了代码的可测试性和可维护性。Spring提供了多种注解来实现依赖注入,包括@...
在登录验证时,Action类会调用Spring服务层的接口,这个接口可能是由Spring的依赖注入机制创建并注入到Action中的。 Spring框架在这个项目中起到了核心的作用。首先,它通过依赖注入管理各个组件,如DAO(数据访问...
然而,在多例模式下,Spring不会提前暴露bean,因为多例bean不保证线程安全,这会导致setter循环注入失败,和构造器循环注入一样引发异常。为了解决这个问题,开发者需要手动打破循环依赖,例如删除或修改导致循环的...
本项目以Spring MVC作为MVC框架,Hibernate作为ORM(对象关系映射)工具,Spring作为服务管理和依赖注入容器,并结合EasyUI进行前端展示,构建了一个简洁而实用的注册表单。以下将详细讲解这些技术如何协同工作。 1...
- Spring Boot通过依赖注入来实现组件之间的解耦。 **18. 使用@SpringBootApplication注解** - `@SpringBootApplication`注解包含了`@SpringBootConfiguration`、`@EnableAutoConfiguration`和`@ComponentScan`三...