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 文件 同一目录 即可

posted @   海乐学习  阅读(1391)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示