MelodyHub

没有伞的孩子必须努力奔跑!|

记录一下学习Spring时的踩坑经验。

Jdk8不兼容Spring4.x以下版本

入门三天,我一直被这控制台一片红苦恼着。

在视频的评论区中没有解决,上论坛上也没有解决。

ak2CAf.png

详细报错:

1
2
3
4
5
6
7
8
org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [beans.xml]
Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.clearCache()V
at org.springframework.context.support.AbstractApplicationContext.resetCommonCaches(AbstractApplicationContext.java:924)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:575)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
at MyTest.main(MyTest.java:13)

解决

知道我无意间看到这个!!!

akWkOs.png

Ctrl+Shift+Alt+S,进入项目设置,更换项目的Jdk版本为8以上,我选择的是Jdk12:

akhxT1.png

如果以上设置还法子解决,那可能还需要再多一步:

akof3V.png

不支持发行版本5 或 Compilation failed: internal java compiler error

提示

Error: java: 错误: 不支持发行版本 5

``Error: java: 错误: Compilation failed: internal java compiler error`

akLyHU.png

分析:

导致这个错误的原因主要是因为jdk版本问题,此处有两个原因,一个是编译版本不匹配,一个是当前项目jdk版本不支持。我的是编译器版本的问题。

解决:

Ctrl+Alt+S,进入IDEA设置,Compiler中设置Java编译器的版本。

解决来源:https://blog.csdn.net/wo541075754/article/details/82119860

aFEbQO.png

NoSuchBeanDefinitionException: No bean named ‘user’ available

控制台提示以下错误:

1
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'user' available

解决:
检查XML文件中Bean对象的id是否有问题?检查绑定的class是否有问题?等等……
结果,我发现是绑定的XML文件,userbeans.xml绑定成了beans.xml。。。

1
ApplicationContext context = new ClassPathXmlApplicationContext("userbeans.xml");

同时使用p命名空间、c命名空间

同时使用p命名空间、c命名空间,因为类中缺少无参构造器,控制台会报错:

1
2
3
4
org.springframework.context.support.AbstractApplicationContext refresh
警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'user' defined in class path resource [userbeans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.melodyhub.pojo.User]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.melodyhub.pojo.User.<init>()

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'user' defined in class path resource [userbeans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.melodyhub.pojo.User]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.melodyhub.pojo.User.<init>()

解决:

类中加上无参构造器,即可。

NullPointerException

控制台报错:出现空指针

1
java.lang.NullPointerException

解决

上述问题存在多种情况。

  1. 可能是使用了注解,但是applicationContext.xml中没有该语句
1
2
<!--开启对注解的支持-->
<context:annotation-config/>

 评论


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Hexo 作为驱动引擎 , 总浏览量为 次 , 总访客数为
载入天数...载入时分秒...