zoukankan      html  css  js  c++  java
  • 解决IntelliJ IDEA无法读取配置文件的问题

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

    最近在学Mybatis,按照视频的讲解在项目的某个包里建立配置文件,然后读取配置文件,但是一直提示异常。
    这里写图片描述

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

    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等。
    这里写图片描述
    如图所示:

    • 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>
    		</resource>
    	</resources>
     </build>
    

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

  • 相关阅读:
    qt的.pro配置总结
    【GOJ 1489】Monster Hunter
    CPU 杂谈
    【CF 1061C|GOJ 3505】Multiplicity
    【CF 1039D|GOJ 3502】You Are Given a Tree
    我跳过的坑
    【CF 1101D|GOJ 3501】GCD Counting
    【HDU 5269|GOJ 739】xor的最低位
    beta阶段组间的140字互评
    【第七周】【新蜂站会】3
  • 原文地址:https://www.cnblogs.com/Sinte-Beuve/p/5730572.html
Copyright © 2011-2022 走看看