spring入门(16) spring常见错误总结

在学习spring过程中遇见了种种不同的异常错误,这里做了一下总结,希望遇见类似错误的同学们共勉一下。

1. 错误一

Error creating bean with name 'helloServiceImpl' defined in class path resource [spring-service.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'helloDao' of bean class [www.csdn.spring.service.impl.HelloServiceImpl]: Bean property 'helloDao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'helloDao' of bean class

这类错误是:一般都是创建了一个dao的spring文件比如spring-dao有创建了一 个service的spring文件,在spring-service.xml中引用dao的中定义的id名,导致的错误,疏忽是:写service实现类的时 候忘记了写对应dao的setter方法,即所谓的依赖注入

比如:

private HelloDao helloDao;

//set依赖 注入很重要,不写会报错,不能读写helloDao这一属性

publicvoid setHelloDao(HelloDao helloDao) {

System.out

.println("控制反转:应用程序本身不在负责创建helloDao对象,而是由spring容器负责 创建、管理、维护,这样控制权转移,称为反转。"

+ "可以通过依赖注入方式注入该HelloDao对象 ");

this.helloDao = helloDao;

}

2. 错误二

Configuration problem: Failed to import bean definitions from relative location [spring-dao.xml]Offending resource: class path resource [spring.xml]; nested exception is org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from class path resource [spring-dao.xml] is invalid; nested exception is org.xml.sax.SAXParseException: Open quote is expected for attribute "{1}" associated with an element type "scope".

Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from class path resource [spring-dao.xml] is invalid; nested exception is org.xml.sax.SAXParseException: Open quote is expected for

Caused by: org.xml.sax.SAXParseException: Open quote is expected for attribute "{1} " associated with an element type "scope".

这种错误是马虎的错误,在对应的spring的配置文 件中,bean标签的scope属性忘了加引号,在配置文件中国不会报错,但是在运行的时候就会出这样的错,一般导致错误的 原因是复制的时候疏忽了引号,直接将原来的引号覆盖了,导致了最后该属性没有引号。

<bean id="helloDaoImpl" class="www.csdn.spring.dao.impl.HelloDaoImpl"

scope="prototype"></bean>

错误的写成:

bean id="helloDaoImpl" class="www.csdn.spring.dao.impl.HelloDaoImpl"

scope=prototype></bean>

3. 错误 三

No bean named 'helloServiceImp' is defined

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition

这种报错但是没 有Caused by语句的错误一般都是使用的时候单词写错了,这里写错的地方是在java类中,类中引用id的时候写错了单词; 比如这里的错,注意下面的红色文字:

HelloService helloService2 = (HelloService) context.getBean ("helloServiceImp",HelloServiceImpl.class);

<bean id="helloServiceImpl" class="www.csdn.spring.service.impl.HelloServiceImpl" scope="singleton" lazy- init="false">

<property name="helloDao" ref="helloDaoImpl" />

</bean>

眼尖的哥们估计都看出来了这两个单词写的不一样,获 取bean的方法中引用的id少写了一个“i”,导致spring容器在读取的时候不能识别。以后注意细心就好。

时间: 2024-10-18 10:29:20

spring入门(16) spring常见错误总结的相关文章

spring入门(1)---开始spring之旅

Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发 . IOC 控制反转 public class PersonServiceBean { private PersonDao personDao = new PersonDaoBean(); public void save(Person person){ personDao.save(person); } } PersonDaoBean 是在应用内部创

Spring的AOP配置以及常见错误(内附代码)

首先我们可以新建一个包,目录结构如下: User类: package com.hqj.aop; public class User {     @Override     public String toString() {         return "User [username=" + username + ", password=" + password + "]";     }     private String username;

spring入门编程问题集锦

1.如何学习Spring? 你可以通过下列途径学习spring: (1) spring下载包中doc目录下的MVC-step-by-step和sample目录下的例子都是比较好的spring开发的例子. (2) AppFuse集成了目前最流行的几个开源轻量级框架或者工具Ant,XDoclet,Spring,Hibernate(iBATIS),JUnit,Cactus,StrutsTestCase,Canoo's WebTest,Struts Menu,Display Tag Library,OS

《Spring 5 官方文档》1. Spring入门指南(一)

译者注:为了方便理解,本译文里面部分名词翻译如下,如有异议,请在评论区指出. Dependency Injection - 依赖注入 Inversion of Control – 控制反转 Instrumentation – 植入 AOP - 面向切面​​的编程 Milestones – 里程碑 Snapshots – 快照 Artifact - 工件(这个词在文中大部分地方都没有翻译,用过Maven或Gradle的都明白,如果有更好的中文翻译,请写在评论区) 1.Spring入门指南 本参考指

spring入门(14)ssh中事务处理spring配置文件

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/t

spring入门(2)---第一个spring案例

直接上图: 源码: HelloDao.java package www.csdn.spring.dao; public interface HelloDao { public void sayHello(); } HelloDAoImpl.java package www.csdn.spring.dao; public class HelloDaoImpl implements HelloDao{ public HelloDaoImpl() { System.out.println("Hello

最简单的Spring入门示例

应一位朋友的要求,写一个最简单的spring示例,使用spring的MVC,并应用了spring的依赖注入,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与ORM框架的整合,事务管理,远程调用,代理等这些功能) spring至关重要的一环就是装配,即配置文件的编写,接下来我按刚才实际过程中一步步简单讲解. 首先,要在web.xml中配置DispatcherServlet,它是作为Spring M

WCF分布式开发常见错误(16):The Transaction has aborted,事务已经被中断

今天调试WCF事务代码遇到这个问题:The Transaction has aborted,事务已经被中断. 具体信息如下图: 开发常见错误(16):The Transaction has aborted,事务已经被中断-事务transaction"> 解决办法: 1.Transaction timed out 设置问题.增加配置代码火属性: <serviceBehaviors> <behavior name="WCFService.WCFServiceBeha

maven intellij-mybatis+spring mvc整合出的错误!

问题描述 mybatis+spring mvc整合出的错误! 10C 在myeclipse中的配置文件转到intellij用maven创建web项目就出现下面的异常.UserMapper.xml中的方法和UserMapper.java中的一样.改用原生JDBC连接没问题,就是不知道是什么错,请大神帮忙解答.在myeclipse中都没问题的,改maven就不行了,纳闷了. type Exception report message Request processing failed; nested

【SSH系列】初识spring+入门demo

       学习过了hibernate,也就是冬天,经过一个冬天的冬眠,当春风吹绿大地,万物复苏,我们迎来了spring,在前面的一系列博文中,小编介绍hibernate的相关知识,接下来的博文中,小编将继续介绍SSH中的spring,Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架.今天这篇博文,小编将从what.why