-
配置文件找不到报错
nested exception is java.io.FileNotFoundException
问题背景:
使用Spring框架 FileSystemXmlApplicationContext实现类的时候 一直报文件找不到的错误
ApplicationContext xmlApplicationContext = new FileSystemXmlApplicationContext
这个问题很奇怪 发现是一个链式错误
首先在右侧 Maven中 clean ---> complie 之后先报了如下的错误1
错误1解决方法:
在pom.xml文件中 加上 本电脑中JDK匹配的编码属性properties 我的电脑使用的JDK版本是11
<!--指定编码及版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<java.version>11</java.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
- 继续运行测试文件的时候 发现继续报错:
nested exception is java.io.FileNotFoundException
按道理说, FileSystemXmlApplicationContext 后面的路径应该是对应.xml文件的 绝对路径
但是我写了绝对路径 依旧报错!! 在本地文件夹中根据绝对路径找可以到该文件 ,所以不是文件不存在的问题
后来阅读文章 文章链接
之后 发现问题在于: 不要全部复制绝对路径,而是只复制src/…xml这个路径
报错解决
ApplicationContext xmlApplicationContext = new FileSystemXmlApplicationContext("src/main/resources/applicationContext.xml");
- 注解实现的时候出现
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'accountService' available
找不到bean问题
首先 请阅读这篇文章检查一下是否可以解决你的问题
https://blog.csdn.net/maoyuanming0806/article/details/78420239
然后说一下我的问题:在applicationContext.xml文件中 配置 注解扫描包的时候 最开始写的是所有文件夹的根目录名称 不能写图中的"java"包!
所以才会报错!
如果包含注释的代码只存在于一个包 且 后续测试或应用的代码也只与这个包相关!
请在<context:component-scan base-package="xxx"/>
“xxx” 写上当前注释所在包的名称!
更直白解释一下:当前需要在"AccountServiceImpl" 这个文件中进行注解操作,然后把管理这个业务的包名 —> “service” 写到注解扫描中 就不会报错了
如果包含注释的代码存在于多个包 请把这些包的最上层新建一个新的包名,并在<context:component-scan base-package="xxx"/>
中写新建的顶层包名