新增: properties 配置读取工具类方法

master
曹世达 6 months ago
parent 12a16394c4
commit 1b72b1924e

@ -0,0 +1,37 @@
<?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>space.caoshd</groupId>
<artifactId>otone</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.2.0</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.14</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

@ -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<String, String> propertyMap;
public PropertyTools(InputStream stream) {
propertyMap = loadProperties(stream);
}
public Map<String, String> loadProperties(InputStream stream) {
try {
Properties properties = new Properties();
properties.load(stream);
Map<String, String> 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));
}
}

@ -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";
}

@ -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());
}
}

@ -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

@ -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() {
}
}

@ -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() {
}
}

@ -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
Loading…
Cancel
Save