From c56a3eaf8392098bd2edb38231d52c7394f97243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sun, 18 Oct 2020 13:20:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E4=BA=A7=E7=94=9F=E7=9A=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/configuration/DruidConfig.java | 4 +++- .../blog/configuration/DruidConfigTest.java | 20 +++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/cn/celess/blog/configuration/DruidConfig.java b/src/main/java/cn/celess/blog/configuration/DruidConfig.java index d9113b1..25bdb1d 100644 --- a/src/main/java/cn/celess/blog/configuration/DruidConfig.java +++ b/src/main/java/cn/celess/blog/configuration/DruidConfig.java @@ -49,7 +49,9 @@ public class DruidConfig { private DruidDataSource readConfigFromFile(File file) throws IOException { Properties properties = new Properties(); - properties.load(new FileInputStream(file)); + FileInputStream fis = new FileInputStream(file); + properties.load(fis); + fis.close(); String url = properties.getProperty(DB_CONFIG_URL_PREFIX, null); String username = properties.getProperty(DB_CONFIG_USERNAME_PREFIX, null); String password = properties.getProperty(DB_CONFIG_PASSWORD_PREFIX, null); diff --git a/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java b/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java index 7ce616c..d0b9e97 100644 --- a/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java +++ b/src/test/java/cn/celess/blog/configuration/DruidConfigTest.java @@ -1,6 +1,8 @@ package cn.celess.blog.configuration; import cn.celess.blog.BaseTest; +import cn.celess.blog.enmu.ConfigKeyEnum; +import cn.celess.blog.service.fileserviceimpl.LocalFileServiceImpl; import com.alibaba.druid.pool.DruidDataSource; import org.junit.After; import org.junit.Before; @@ -43,13 +45,17 @@ public class DruidConfigTest extends BaseTest { // 有配置文件的测试 Properties properties = new Properties(); - properties.load(new FileInputStream(configFile)); + FileInputStream fileInputStream = new FileInputStream(configFile); + properties.load(fileInputStream); + fileInputStream.close(); properties.setProperty(DruidConfig.DB_CONFIG_URL_PREFIX, "jdbc:mysql://localhost:3306/blog"); properties.setProperty(DruidConfig.DB_CONFIG_DRIVER_CLASS_NAME_PREFIX, "com.mysql.cj.jdbc.Driver"); properties.setProperty(DruidConfig.DB_CONFIG_USERNAME_PREFIX, "username"); properties.setProperty(DruidConfig.DB_CONFIG_PASSWORD_PREFIX, "password"); // 保存到文件 - properties.store(new FileOutputStream(configFile), "db config"); + FileOutputStream fileOutputStream = new FileOutputStream(configFile); + properties.store(fileOutputStream, "数据库配置"); + fileOutputStream.close(); druidDataSource = druidConfig.initDataSource(); assertEquals(properties.getProperty(DruidConfig.DB_CONFIG_URL_PREFIX), druidDataSource.getUrl()); assertEquals(properties.getProperty(DruidConfig.DB_CONFIG_DRIVER_CLASS_NAME_PREFIX), druidDataSource.getDriverClassName()); @@ -62,12 +68,18 @@ public class DruidConfigTest extends BaseTest { if (bakConfigFile.exists()) { System.out.println("恢复配置文件成功"); copyFile(bakConfigFile, configFile); - bakConfigFile.deleteOnExit(); + assertTrue(bakConfigFile.delete()); + } else { + configFile.deleteOnExit(); } } @Before - public void recordConfig() throws IOException { + public void recordConfig() { + File path = new File(LocalFileServiceImpl.getPath(System.getProperty(ConfigKeyEnum.BLOG_FILE_PATH.getKey()))); + if (!path.exists() && !path.mkdirs()) { + fail("创建失败"); + } this.bakConfigFile = new File(DruidConfig.DB_CONFIG_PATH + ".bak"); this.configFile = new File(DruidConfig.DB_CONFIG_PATH); if (configFile.exists()) {