最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java maven項(xiàng)目如何讀取配置文件信息

 更新時(shí)間:2021年11月19日 08:58:17   作者:frank12-12  
這篇文章主要介紹了java maven項(xiàng)目如何讀取配置文件信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

maven項(xiàng)目讀取配置文件信息

目錄結(jié)構(gòu)

主類

App.java

package com.tomy.hive; 
import java.io.*;
import java.util.Properties;
 
/**
 * Hello world!
 *
 */
public class App {
    private static String JDBC_URL;
    private static String JDBC_DRIVER;
 
    /**
     * 讀取配置文件
     * @return
     */
    public static void readConfigFile(String cfgFile) {
        try {
            InputStream in = App.class.getClassLoader().getResource(cfgFile).openStream();
            Properties prop = new Properties();
            prop.load(in);
            JDBC_URL = prop.getProperty("jdbc.url");
            JDBC_DRIVER = prop.getProperty("jdbc.driver");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    public static void main(String[] args) {
        readConfigFile("resources/jdbc.properties");
        System.out.println(JDBC_URL);
        System.out.println(JDBC_DRIVER);
    }
}

配置文件

jdbc.properties

jdbc.url=jdbc:mysql://10.6.52.35:3306/test?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
jdbc.driver=com.mysql.jdbc.Driver

pom文件

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.tomy.hive</groupId>
  <artifactId>hive-demo</artifactId>
  <version>1.0-SNAPSHOT</version>
 
  <name>hive-demo</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
 
  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <skip>true</skip>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.tomy.hive.App</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <executions>
            <execution>
              <id>copy-resources</id>
              <phase>validate</phase>
              <goals>
                <goal>copy-resources</goal>
              </goals>
              <configuration>
                <outputDirectory>${project.build.directory}/conf</outputDirectory>
                <resources>
                  <resource>
                    <directory>src/main/resources</directory>
                  </resource>
                </resources>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
 
    </pluginManagement>
 
    <resources>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/**.properties</include>
        </includes>
        <targetPath>/resources</targetPath>
      </resource>
    </resources>
  </build>
</project>

控制臺(tái)運(yùn)行

jar命令運(yùn)行

maven工程讀取resources配置文件的姿勢

maven項(xiàng)目結(jié)構(gòu)如下

在這里插入圖片描述

使用相對(duì)路徑來讀取resources目錄下的資源文件

InputStream in = new InputStream(new File(“src/main/resources/car.txt”));

這樣在本地運(yùn)行的時(shí)候,是能正常讀取到的,不會(huì)報(bào)錯(cuò),但是如果打成jar包,運(yùn)行的時(shí)候就會(huì)報(bào)路徑錯(cuò)誤。

從jar包的結(jié)構(gòu)可以看到,resources目錄的資源文件位置變了,在項(xiàng)目的最外層了,所以導(dǎo)致相對(duì)路徑也發(fā)生了變化。

在這里插入圖片描述

這個(gè)時(shí)候,我們可以通過getClassLoader()方法來獲取正確的配置文件路徑。

(this也可以換成類的名稱)

InputStream in = this.class.getClassLoader().getResourceAsStream(path);

這樣,在本地運(yùn)行或者jar包運(yùn)行都能正常讀取到配置文件了。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java編碼輔助工具Lombok用法詳解

    Java編碼輔助工具Lombok用法詳解

    這篇文章主要介紹了Java編碼輔助工具Lombok用法詳解,可以使用Lombok來避免這種重復(fù)的操作,減少非核心代碼的臃腫,提高編碼效率,需要的朋友可以參考下
    2019-06-06
  • 詳解微信小程序 同步異步解決辦法

    詳解微信小程序 同步異步解決辦法

    這篇文章主要介紹了詳解微信小程序 同步異步解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • SpringBoot中的@PostConstruct注解詳細(xì)解析

    SpringBoot中的@PostConstruct注解詳細(xì)解析

    這篇文章主要介紹了SpringBoot中的@PostConstruct注解詳細(xì)解析,@PostConstruct注解,主要用于在Spring容器啟動(dòng)時(shí)執(zhí)行某些操作或者任務(wù),@PostConstruct注解一般放在BEAN的方法上,一旦BEAN初始化完成之后,將會(huì)調(diào)用這個(gè)方法,需要的朋友可以參考下
    2024-01-01
  • springboot集成redis lettuce

    springboot集成redis lettuce

    目前java操作redis的客戶端有jedis跟Lettuce。本文主要介紹了springboot集成redis lettuce,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • JDK8安裝與配置實(shí)踐超詳細(xì)指南

    JDK8安裝與配置實(shí)踐超詳細(xì)指南

    本文詳細(xì)介紹了在Windows?64位系統(tǒng)上安裝和配置JDK8的步驟,包括JDK8下載、環(huán)境變量設(shè)置及安裝驗(yàn)證,同時(shí)提供了JDK8新特性如Lambda表達(dá)式、StreamAPI等的概覽,旨在幫助Java開發(fā)者有效利用JDK8新特性進(jìn)行開發(fā),需要的朋友可以參考下
    2024-10-10
  • Spring WebFlux之響應(yīng)式編程詳解

    Spring WebFlux之響應(yīng)式編程詳解

    這篇文章主要介紹了Spring WebFlux之響應(yīng)式編程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Spring Boot項(xiàng)目利用Redis實(shí)現(xiàn)session管理實(shí)例

    Spring Boot項(xiàng)目利用Redis實(shí)現(xiàn)session管理實(shí)例

    本篇文章主要介紹了Spring Boot項(xiàng)目利用Redis實(shí)現(xiàn)session管理實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 解決springboot3:mybatis-plus依賴錯(cuò)誤:org.springframework.beans.factory.UnsatisfiedDependencyException

    解決springboot3:mybatis-plus依賴錯(cuò)誤:org.springframework.beans.fac

    這篇文章主要介紹了解決springboot3:mybatis-plus依賴錯(cuò)誤:org.springframework.beans.factory.UnsatisfiedDependencyException問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • JAVA集合框架Map特性及實(shí)例解析

    JAVA集合框架Map特性及實(shí)例解析

    這篇文章主要介紹了JAVA集合框架Map特性及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot快速入門詳解

    SpringBoot快速入門詳解

    springboot提供了一種快速使用spring的方式,基于coc的思想,即約定大于配置,通過本文學(xué)習(xí)快速掌握springboot入門知識(shí),感興趣的朋友跟隨小編一起看看吧
    2021-07-07

最新評(píng)論

平顺县| 万全县| 福清市| 松原市| 巩义市| 武隆县| 阿克陶县| 远安县| 来凤县| 赤壁市| 平和县| 永德县| 张家川| 噶尔县| 安多县| 元阳县| 安龙县| 池州市| 抚松县| 深州市| 汶川县| 九龙县| 盱眙县| 玛曲县| 剑河县| 静安区| 察哈| 六枝特区| 沅陵县| 偏关县| 巫山县| 安国市| 云梦县| 馆陶县| 苍山县| 东乡族自治县| 定西市| 泰和县| 乌兰县| 怀仁县| 梅州市|