• IntelliJ IDEA java maven项目读取配置文件信息


    一、在main目录下 新建 resources 目录 并将其设为 资源文件目录

     

     

    二、在pom.xml 中添加 下面代码  只这样 打包后 jar 才能有配置文件

    <resources>
          <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
            <includes>
              <include>**/**.properties</include>
            </includes>
            <targetPath>/resources</targetPath>
          </resource>
     </resources>

     三、具体实现的代码

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    public static String POSTGRESQL_URL;
    public static String POSTGRESQL_USER;
    public static String POSTGRESQL_PASSWORD;
    /**
         * 读取配置文件
         * @return
         */
        public static void readConfigFile(String cfgFile) {
            try {
                InputStream in = App.class.getClassLoader().getResource(cfgFile).openStream();
                Properties prop = new Properties();
                prop.load(in);
                POSTGRESQL_URL = prop.getProperty("postgresql.url");
                POSTGRESQL_USER = prop.getProperty("postgresql.user");
                POSTGRESQL_PASSWORD = prop.getProperty("postgresql.password");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
     public static void main( String[] args )
     {
            //System.out.println( "启动 SinaServer " );
            logger.info("启动 SinaServer");
            //读配置文件
            readConfigFile("resources/postgresql.properties");
            //System.out.println(POSTGRESQL_URL);
            logger.info("读配置文件 "+POSTGRESQL_URL +" "+ POSTGRESQL_USER + " " +  POSTGRESQL_PASSWORD);
    }

    下面是通篇代码,供参考

    package com.SinaServer;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    /**
     * SinaServer
     */
    public class App 
    {
        public static final Logger logger = LoggerFactory.getLogger(App.class);
        public static String POSTGRESQL_URL;
        public static String POSTGRESQL_USER;
        public static String POSTGRESQL_PASSWORD;
    
        /**
         * 读取配置文件
         * @return
         */
        public static void readConfigFile(String cfgFile) {
            try {
                InputStream in = App.class.getClassLoader().getResource(cfgFile).openStream();
                Properties prop = new Properties();
                prop.load(in);
                POSTGRESQL_URL = prop.getProperty("postgresql.url");
                POSTGRESQL_USER = prop.getProperty("postgresql.user");
                POSTGRESQL_PASSWORD = prop.getProperty("postgresql.password");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static void main( String[] args )
        {
            //System.out.println( "启动 SinaServer " );
            logger.info("启动 SinaServer");
            //读配置文件
            readConfigFile("resources/postgresql.properties");
            //System.out.println(POSTGRESQL_URL);
            logger.info("读配置文件 "+POSTGRESQL_URL +" "+ POSTGRESQL_USER + " " +  POSTGRESQL_PASSWORD);
     
        }
     
    }

    四、如果运行出错

    试试去掉   pom.xml  中的  <targetPath>/resources</targetPath>

    五、编译

    IntelliJ IDEA 具体怎么 编译 在我之前的博客中有讲

    https://www.cnblogs.com/hailexuexi/p/14887291.html

    这里重点说一下。

    postgresql.properties 这个配置文件 被打包到了  **.jar 中了

     用 压缩软件 打开  ***.jar 文件 其中 resources 目录中

     再右键  用 记事本 打开  postgresql.properties 文件

     保存后,再启动这个  **.jar 程序,就弄获取到 新的配置值

     注:如果把 所有 .jar文件 打在外部的方式,就将 postgresql.properties 放到与 主程序的 jar 文件 同一目录 即可

  • 相关阅读:
    Hadoop-03 基于Hadoop的JavaEE数据可视化简易案例(升级使用HBase存储结果集)
    Hadoop-02 基于Hadoop的JavaEE数据可视化简易案例
    Python03 变量
    Python01 VSCode开发环境和入门程序
    MyBatis01 Idea中搭建MyBatis开发环境
    Idea01 Idea2018中集成Tomcat9导致OutPut乱码
    MySQL-08 MySQL8.0新特性
    C11 C语言文件的读写
    C10 C语言数据结构
    C09 指针
  • 原文地址:https://www.cnblogs.com/hailexuexi/p/14939503.html
Copyright © 2020-2023  润新知