Bean 'collectionBean'
-> Property 'users'
乍一看,有些许没有头脑,但是放下心仔细看看,提示说什么users属性怎么怎么滴;还有一点提示就是说是spring-collection.xml配置文件中的错误,这就好找,找到改配置中有关users的地方,
。。。。。
这样的代码肯定不会出错了,如果是这里的错报的就不是这个错了,可能就是第一条或第二条错了;再找下一块有users的地方,找到了这里:
仔细一看真是这里的错,红色部分最开始忘了写,注释掉了上面的list注入值的方式,后面的uti标签注入值有没有写,这是在测试类中取值遍历的时候就会遍历一个空的users,这是因为是没有注入值的错,所以没有报空指针的错,报的是这种莫名其妙的错。
11. 错误十一
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'proxyFactoryBean' must be of type [www.csdn.spring.advice.SayServiceImpls], but was actually of type [$Proxy4]
这种错误一般出在aop面向切面的编程中,spring面向切面的代理有两种,一种是jdk动态代理,一种是cglib代理;这是你在使用的的使用如果混合时候就会出现上面的错;这两种代理的区别是前者是接口代理,就是返回一个接口类型对象,而后者是类代理,不能返回接口类型对象只能返回类类型对象,如果返回接口了同样会出这样的错。
还有可能出错的地方就是对应的spring配置文件,这
里是最容易马虎出错的地方,仔细检查一下的你的目标对象,比如:
这里在引用bean的时候可能引入错误,可能会引入jdk动态代理的目标类,也有可能你的目标类中实现了某些接口,不符合cglib代理的理念;还有可能马虎出错的地方:
真实对象的id和class属性设置错误的时候也会出错。
12. 错误十二
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'proxyFactoryBean' defined in class path resource [spring-advice.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'proxyInterfaces' threw exception; nested exception is java.lang.IllegalArgumentException: [www.csdn.spring.proxy.advice.SayServiceImpl] is not an interface
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'proxyInterfaces' threw exception; nested exception is java.lang.IllegalArgumentException: [www.csdn.spring.proxy.advice.SayServiceImpl] is not an interface
这个问题很好解决,最关键的问题出在红色部分,原因是在spring相关配置文件中设置抽象主题的时候,既然是抽象主题就应该设置成接口,而不应该是实现类。比如下面的代码,注意红色部分:
正确的写法应该是:
13. 错误十三
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'proxyFactoryBean': FactoryBean threw exception on object creation; nested exception is org.springframework.aop.framework.AopConfigException: Unknown advisor type class www.csdn.spring.proxy.advice.AuditableImpl; Can only include Advisor or Advice type beans in interceptorNames chain except for last entry,which may also be target or TargetSource; nested exception is org.springframework.aop.framework.adapter.UnknownAdviceTypeException: Advice object [www.csdn.spring.proxy.advice.AuditableImpl@1f758500] is neither a supported subinterface of [org.aopalliance.aop.Advice] nor an [org.springframework.aop.Advisor]
Caused by: org.springframework.aop.framework.AopConfigException: Unknown advisor type class www.csdn.spring