From 1b72b1924e48b351f759caf78f12ede8f95ddc39 Mon Sep 17 00:00:00 2001 From: caoshd Date: Wed, 27 Mar 2024 22:28:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20properties=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=AF=BB=E5=8F=96=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 37 ++++++++++++++++ .../caoshd/otone/tool/PropertyTools.java | 44 +++++++++++++++++++ .../space/caoshd/otone/util/Constants.java | 11 +++++ .../caoshd/otone/util/ResourceUtils.java | 17 +++++++ src/main/resources/config.properties | 0 src/main/resources/datasource.properties | 4 ++ .../caoshd/otone/tool/PropertyToolsTest.java | 34 ++++++++++++++ .../caoshd/otone/util/ResourceUtilsTest.java | 18 ++++++++ src/test/resources/config.properties | 0 src/test/resources/datasource.properties | 4 ++ 10 files changed, 169 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/space/caoshd/otone/tool/PropertyTools.java create mode 100644 src/main/java/space/caoshd/otone/util/Constants.java create mode 100644 src/main/java/space/caoshd/otone/util/ResourceUtils.java create mode 100644 src/main/resources/config.properties create mode 100644 src/main/resources/datasource.properties create mode 100644 src/test/java/space/caoshd/otone/tool/PropertyToolsTest.java create mode 100644 src/test/java/space/caoshd/otone/util/ResourceUtilsTest.java create mode 100644 src/test/resources/config.properties create mode 100644 src/test/resources/datasource.properties diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..6e1697a --- /dev/null +++ b/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + space.caoshd + otone + 1.0.0-SNAPSHOT + + + 1.8 + 1.8 + UTF-8 + + + + + com.mysql + mysql-connector-j + 8.2.0 + + + ch.qos.logback + logback-classic + 1.4.14 + + + org.junit.jupiter + junit-jupiter + RELEASE + test + + + + \ No newline at end of file diff --git a/src/main/java/space/caoshd/otone/tool/PropertyTools.java b/src/main/java/space/caoshd/otone/tool/PropertyTools.java new file mode 100644 index 0000000..2d798dd --- /dev/null +++ b/src/main/java/space/caoshd/otone/tool/PropertyTools.java @@ -0,0 +1,44 @@ +package space.caoshd.otone.tool; + +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +/** + * properties 加载类 + */ +public class PropertyTools { + + Map propertyMap; + + public PropertyTools(InputStream stream) { + propertyMap = loadProperties(stream); + } + + public Map loadProperties(InputStream stream) { + try { + Properties properties = new Properties(); + properties.load(stream); + Map result = new HashMap<>(); + properties.forEach((k, v) -> result.put((String) k, (String) v)); + return result; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public String getString(String key) { + return propertyMap.get(key); + } + + public Integer getInt(String key) { + return Integer.valueOf(propertyMap.get(key)); + } + + public Long getLong(String key) { + return Long.valueOf(propertyMap.get(key)); + } + +} diff --git a/src/main/java/space/caoshd/otone/util/Constants.java b/src/main/java/space/caoshd/otone/util/Constants.java new file mode 100644 index 0000000..70d26dc --- /dev/null +++ b/src/main/java/space/caoshd/otone/util/Constants.java @@ -0,0 +1,11 @@ +package space.caoshd.otone.util; + +public class Constants { + public Constants() { + } + + public static final String DATASOURCE_PATH = "datasource.properties"; + + public static final String CONFIG_PATH = "config.properties"; + +} diff --git a/src/main/java/space/caoshd/otone/util/ResourceUtils.java b/src/main/java/space/caoshd/otone/util/ResourceUtils.java new file mode 100644 index 0000000..5965e6c --- /dev/null +++ b/src/main/java/space/caoshd/otone/util/ResourceUtils.java @@ -0,0 +1,17 @@ +package space.caoshd.otone.util; + +import java.io.File; +import java.io.InputStream; +import java.net.URL; + +public class ResourceUtils { + public static InputStream getClassPathFileStream(String filename) { + return ResourceUtils.class.getClassLoader().getResourceAsStream(filename); + } + + public static File getClassPathFile(String filename) { + URL resource = ResourceUtils.class.getClassLoader().getResource(filename); + assert resource != null; + return new File(resource.getFile()); + } +} diff --git a/src/main/resources/config.properties b/src/main/resources/config.properties new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/datasource.properties b/src/main/resources/datasource.properties new file mode 100644 index 0000000..36c70db --- /dev/null +++ b/src/main/resources/datasource.properties @@ -0,0 +1,4 @@ +username=root +password=123456 +url=jdbc:mysql://localhost:3306/otone?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +driver-class-name=com.mysql.cj.jdbc.Driver \ No newline at end of file diff --git a/src/test/java/space/caoshd/otone/tool/PropertyToolsTest.java b/src/test/java/space/caoshd/otone/tool/PropertyToolsTest.java new file mode 100644 index 0000000..2484459 --- /dev/null +++ b/src/test/java/space/caoshd/otone/tool/PropertyToolsTest.java @@ -0,0 +1,34 @@ +package space.caoshd.otone.tool; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import space.caoshd.otone.util.Constants; +import space.caoshd.otone.util.ResourceUtils; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.*; + +class PropertyToolsTest { + + @Test + void loadProperties() { + InputStream fileStream = ResourceUtils.getClassPathFileStream(Constants.DATASOURCE_PATH); + PropertyTools propertyTools = new PropertyTools(fileStream); + Assertions.assertNotNull(propertyTools); + } + + @Test + void getString() { + } + + @Test + void getInt() { + } + + @Test + void getLong() { + } +} \ No newline at end of file diff --git a/src/test/java/space/caoshd/otone/util/ResourceUtilsTest.java b/src/test/java/space/caoshd/otone/util/ResourceUtilsTest.java new file mode 100644 index 0000000..ddc65ca --- /dev/null +++ b/src/test/java/space/caoshd/otone/util/ResourceUtilsTest.java @@ -0,0 +1,18 @@ +package space.caoshd.otone.util; + +import org.junit.jupiter.api.Test; + +import java.io.File; + +class ResourceUtilsTest { + + @Test + void getClassPathFile() { + File file = ResourceUtils.getClassPathFile("datasource.properties"); + System.out.println(file); + } + + @Test + void getClassPathFileStream() { + } +} \ No newline at end of file diff --git a/src/test/resources/config.properties b/src/test/resources/config.properties new file mode 100644 index 0000000..e69de29 diff --git a/src/test/resources/datasource.properties b/src/test/resources/datasource.properties new file mode 100644 index 0000000..36c70db --- /dev/null +++ b/src/test/resources/datasource.properties @@ -0,0 +1,4 @@ +username=root +password=123456 +url=jdbc:mysql://localhost:3306/otone?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +driver-class-name=com.mysql.cj.jdbc.Driver \ No newline at end of file