解决IntelliJ IDEA无法读取配置文件的问题

最近在学Mybatis,按照视频的讲解在项目的某个包里建立配置文件,然后读取配置文件,但是一直提示异常。
《解决IntelliJ IDEA无法读取配置文件的问题》

读取配置文件的为官方代码:

String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); 

经过反复思考,视频用的ide是eclipse,eclipse里在包下的配置文件(.propoties 和.xml等)编译之后会自动复制到编译后的文件夹中,也就是classes目录。因此代码可以通过路径加载到配置文件。

而现在我们使用的是IntelliJ IDEA,idea对这些配置的文件方式很明显和eclipse是不同的。在idea中有一个 Content Roots的概念。需要为每一个folder配置相应的Content Roots。Content Roots包括resources、sources、tests等。
《解决IntelliJ IDEA无法读取配置文件的问题》
如图所示:

  • java文件夹被标注为Sources,那么下面的所有子文件夹均为Sources,编译后生成.class文件。
  • Resources文件夹被标注为Resources,那么在该文件夹下的配置文件在编译时会自动复制到编译文件夹中。

那么对于idea来说,就有以下几种解决方案。

  1. 将配置文件放到Resources文件夹中,在代码中添加配置文件的虚拟路径。选中文件,右键-Copy Reference,就可以获取到文件的虚拟路径。
  2. 把配置文件放在com.zjut.ssm.config包中,修改config文件夹的Content Roots为Resources,那么编译后,代码也能识别出来。

以上两种解决方案适用于make project方式来编译项目。

如果是maven项目。还可以通过配置pom.xml来实现。

 <build>
    <finalName>springmvc-study</finalName>
    <resources>
        <resource>
            <directory>${basedir}/src/main/java</directory>
            <includes>
                <include>**/*.properties</include> <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>${basedir}/src/main/resources</directory>  <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> 
        </resource>
    </resources>
 </build>

这样不用对idea设置,也可以使用maven的编译命令编译项目,并复制配置文件到编译好的文件夹中。

 

  1. 那么问题是, 难道intellij必须以这种分开的方式来管理源码和资源文件嘛? 并不是的, intellij也可以像eclipse那样把source 和resource搅成一锅粥,下边来介绍怎么搞
    1. 这里需要注意一下,Intellij IDEA Version 2016.2.5 是有bug的, 有的时候, source下的资源文件是可以复制到目标文件夹的, 有的时候, 会被无视掉. 本文解决的问题就是, 当你的intellij不再帮你复制资源文件的时候, 你如何通过操作来让intellij自动帮你将资源文件拷贝到输出文件夹
  1. 我直接从朋友服务器上checkout一个项目

 
《解决IntelliJ IDEA无法读取配置文件的问题》
《解决IntelliJ IDEA无法读取配置文件的问题》

  1. 对这个项目做一些该做的配置, 比如输出文件夹啊, 库的位置啊, 还有部署一下tomcat啊

 
《解决IntelliJ IDEA无法读取配置文件的问题》
《解决IntelliJ IDEA无法读取配置文件的问题》

  1. 点运行之后, 可以看到, classes文件可以成功编译过来, 但是配置文件是过不来的

 
《解决IntelliJ IDEA无法读取配置文件的问题》
《解决IntelliJ IDEA无法读取配置文件的问题》

  1. 可以这样解决
    1. 之后到setting里边做如下的设置–这两步就能完全解决问题

《解决IntelliJ IDEA无法读取配置文件的问题》 首先打开setting 的build –> Compiler –> 把!?*.java 里边的?给删了 变成!*.java
《解决IntelliJ IDEA无法读取配置文件的问题》 下边打上勾
《解决IntelliJ IDEA无法读取配置文件的问题》
《解决IntelliJ IDEA无法读取配置文件的问题》

  1. 配置文件就都可以过来了

《解决IntelliJ IDEA无法读取配置文件的问题》

《解决IntelliJ IDEA无法读取配置文件的问题》

    原文作者:wangyanlong0107
    原文地址: https://blog.csdn.net/wangyanlong0107/article/details/84919547
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞