From d342c8167f9a005fa9b6c4e16a41786dd8a4f352 Mon Sep 17 00:00:00 2001 From: userA Date: Thu, 20 Apr 2023 21:39:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 2 + .idea/encodings.xml | 3 +- CHANGELOG.md | 9 ++ FileModule/pom.xml | 6 +- .../org/example/bean/ModuleConfigSrc.java | 15 +++ .../org/example/init/ModuleConfigSrcInit.java | 99 ++++++++++++++++++ FileModule/src/main/resources/student.json | 15 +++ FileModule/src/main/resources/student2.json | 1 + FileModule/src/main/resources/test2.json | 19 ++++ .../java/org/example/util/FileUtilTest.java | 8 ++ .../org/example/bean/ModuleConfigSrc.class | Bin 0 -> 1790 bytes .../example/init/ModuleConfigSrcInit.class | Bin 0 -> 4259 bytes .../org/example/method/FileCondition.class | Bin 0 -> 283 bytes .../classes/org/example/util/FileUtil$1.class | Bin 0 -> 3119 bytes .../classes/org/example/util/FileUtil.class | Bin 0 -> 4151 bytes .../org/example/util/JsonFileUtil.class | Bin 0 -> 7802 bytes FileModule/target/classes/student.json | 15 +++ FileModule/target/classes/student2.json | 1 + FileModule/target/classes/test.json | 10 ++ FileModule/target/classes/test2.json | 19 ++++ .../test-classes/org/example/AppTest.class | Bin 0 -> 631 bytes .../org/example/bean/Student.class | Bin 0 -> 4628 bytes .../org/example/util/FileUtilTest.class | Bin 0 -> 1074 bytes .../org/example/util/JsonFileUtilTest.class | Bin 0 -> 3088 bytes common/pom.xml | 28 +++++ common/src/main/java/org/example/App.java | 13 +++ .../java/org/example/init/InitMachine.java | 13 +++ common/src/test/java/org/example/AppTest.java | 38 +++++++ common/target/classes/org/example/App.class | Bin 0 -> 567 bytes .../org/example/init/InitMachine.class | Bin 0 -> 141 bytes config/moduleConfig.json | 23 ++++ console/pom.xml | 18 ++++ .../java/org/example/ConsoleApplication.java | 11 +- .../main/java/org/example/init/InitWorld.java | 47 +++++++++ pom.xml | 2 + 35 files changed, 412 insertions(+), 3 deletions(-) create mode 100644 FileModule/src/main/java/org/example/bean/ModuleConfigSrc.java create mode 100644 FileModule/src/main/java/org/example/init/ModuleConfigSrcInit.java create mode 100644 FileModule/src/main/resources/student.json create mode 100644 FileModule/src/main/resources/student2.json create mode 100644 FileModule/src/main/resources/test2.json create mode 100644 FileModule/target/classes/org/example/bean/ModuleConfigSrc.class create mode 100644 FileModule/target/classes/org/example/init/ModuleConfigSrcInit.class create mode 100644 FileModule/target/classes/org/example/method/FileCondition.class create mode 100644 FileModule/target/classes/org/example/util/FileUtil$1.class create mode 100644 FileModule/target/classes/org/example/util/FileUtil.class create mode 100644 FileModule/target/classes/org/example/util/JsonFileUtil.class create mode 100644 FileModule/target/classes/student.json create mode 100644 FileModule/target/classes/student2.json create mode 100644 FileModule/target/classes/test.json create mode 100644 FileModule/target/classes/test2.json create mode 100644 FileModule/target/test-classes/org/example/AppTest.class create mode 100644 FileModule/target/test-classes/org/example/bean/Student.class create mode 100644 FileModule/target/test-classes/org/example/util/FileUtilTest.class create mode 100644 FileModule/target/test-classes/org/example/util/JsonFileUtilTest.class create mode 100644 common/pom.xml create mode 100644 common/src/main/java/org/example/App.java create mode 100644 common/src/main/java/org/example/init/InitMachine.java create mode 100644 common/src/test/java/org/example/AppTest.java create mode 100644 common/target/classes/org/example/App.class create mode 100644 common/target/classes/org/example/init/InitMachine.class create mode 100644 config/moduleConfig.json create mode 100644 console/src/main/java/org/example/init/InitWorld.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 4653f36..6a479b1 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -9,6 +9,7 @@ + @@ -34,6 +35,7 @@ + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 4e65c60..fc2343b 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -4,7 +4,6 @@ - @@ -14,6 +13,8 @@ + + diff --git a/CHANGELOG.md b/CHANGELOG.md index c457f0d..6ae0bae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,15 @@ - 🎈新增: 新增 `JsonFileUtil` 工具类,用于进行json文件的读写操作 - 🎈新增: 新增 `FileUtil` 工具类,用于进行文件复制文件删除等操作 - 🎈新增: 新增 `FileCondition` 方法,用于对文件递归删除进行条件过滤 +- 🎈新增: 新增 `ModuleConfigSrcInit` 初始化模块,用于初始化各个模块的配置文件夹,以及模块配置文件路径管理 +- 🎈新增: 新增 `ModuleConfigSrc` 模块配置类 - 🧪测试: 测试 `FileUtil` 工具类, 测试 `JsonFileUtil` 工具类 +### console +- 🎈新增: 新增 `InitWord` 用于整个项目的初始化启动 + +### 🎈新增 common 模块 +- 🎈新增: 新增 `InitMachine` 初始化机器接口,为所有模块初始化类提供统一接口 + + diff --git a/FileModule/pom.xml b/FileModule/pom.xml index 8e5c0b0..e18c0a0 100644 --- a/FileModule/pom.xml +++ b/FileModule/pom.xml @@ -18,6 +18,11 @@ + + org.example + common + 1.0-SNAPSHOT + com.alibaba @@ -32,7 +37,6 @@ org.projectlombok lombok - test diff --git a/FileModule/src/main/java/org/example/bean/ModuleConfigSrc.java b/FileModule/src/main/java/org/example/bean/ModuleConfigSrc.java new file mode 100644 index 0000000..72df930 --- /dev/null +++ b/FileModule/src/main/java/org/example/bean/ModuleConfigSrc.java @@ -0,0 +1,15 @@ +package org.example.bean; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author Genius + * @date 2023/04/20 19:29 + **/ + +@Data +@AllArgsConstructor +public class ModuleConfigSrc { + private String src; +} diff --git a/FileModule/src/main/java/org/example/init/ModuleConfigSrcInit.java b/FileModule/src/main/java/org/example/init/ModuleConfigSrcInit.java new file mode 100644 index 0000000..bef80f5 --- /dev/null +++ b/FileModule/src/main/java/org/example/init/ModuleConfigSrcInit.java @@ -0,0 +1,99 @@ +package org.example.init; + +import org.example.bean.ModuleConfigSrc; +import org.example.util.FileUtil; +import org.example.util.JsonFileUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Map; +import java.util.Objects; + +/** + * @author Genius + * @date 2023/04/20 18:34 + **/ + +public class ModuleConfigSrcInit implements InitMachine { + + private Logger logger = LoggerFactory.getLogger(ModuleConfigSrcInit.class); + private static final Map config; + + static{ + config = Map.of( + "account", new ModuleConfigSrc("./config/account"), + "section", new ModuleConfigSrc("./config/section"), + "barrage", new ModuleConfigSrc("./config/barrage"), + "creeper", new ModuleConfigSrc("./config/creeper"), + "videowork", new ModuleConfigSrc("./config/videowork"), + "hot", new ModuleConfigSrc("./config/hot"), + "publish", new ModuleConfigSrc("./config/publish") + ); + } + + private static final String CONFIG_SRC = "./config"; + private static final String CONFIG_SRC_FILE = "moduleConfig.json"; + + // 初始化每个模块的配置文件夹 + @Override + public boolean init() { + Path dir = Paths.get(CONFIG_SRC); + if (!createConfigDirectory(dir)) { + return false; + } + if (!createConfigFile(dir)) { + return false; + } + if (!createModuleDirectory()) { + return false; + } + return true; + } + + private boolean createConfigDirectory(Path dir) { + try { + if (!Files.exists(dir)) { + Files.createDirectory(dir); + logger.info("创建 config 文件夹成功 √ "); + } + }catch (Exception e) { + logger.error("创建配置文件夹失败"); + return false; + } + return true; + } + + private boolean createConfigFile(Path dir) { + Path path = Paths.get(dir.toString(), CONFIG_SRC_FILE); + try { + if (!Files.exists(path)) { + JsonFileUtil.writeJsonFile(path.toString(),config); + logger.info("创建 {} 配置文件成功 √",CONFIG_SRC_FILE); + } + }catch (Exception e) { + logger.error("创建配置文件失败"); + return false; + } + return true; + } + + private boolean createModuleDirectory() { + for (Map.Entry stringModuleConfigSrcEntry : config.entrySet()) { + ModuleConfigSrc moduleConfigSrc = stringModuleConfigSrcEntry.getValue(); + try { + if (!FileUtil.isFileExist(moduleConfigSrc.getSrc())) { + Files.createDirectory(Path.of(moduleConfigSrc.getSrc())); + logger.info("创建 {} 模块文件夹成功 √ ",moduleConfigSrc.getSrc()); + } + }catch (Exception e) { + logger.error("创建 {} 模块文件夹失败 ×",moduleConfigSrc.getSrc()); + return false; + } + } + return true; + } +} diff --git a/FileModule/src/main/resources/student.json b/FileModule/src/main/resources/student.json new file mode 100644 index 0000000..ea587fa --- /dev/null +++ b/FileModule/src/main/resources/student.json @@ -0,0 +1,15 @@ +{ + "age":18, + "hobby":[ + "Coding", + "Reading", + "Playing" + ], + "info":{ + "QQ":"123456789", + "WeChat":"987654321" + }, + "major":"CS", + "name":"Genius", + "school":"HUST" +} \ No newline at end of file diff --git a/FileModule/src/main/resources/student2.json b/FileModule/src/main/resources/student2.json new file mode 100644 index 0000000..c4be758 --- /dev/null +++ b/FileModule/src/main/resources/student2.json @@ -0,0 +1 @@ +[{"age":18,"hobby":["Coding","Reading","Playing"],"info":{"QQ":"123456789","WeChat":"987654321"},"major":"CS","name":"Genius","school":"HUST"}] \ No newline at end of file diff --git a/FileModule/src/main/resources/test2.json b/FileModule/src/main/resources/test2.json new file mode 100644 index 0000000..ddb85d9 --- /dev/null +++ b/FileModule/src/main/resources/test2.json @@ -0,0 +1,19 @@ +{ + "module":{ + "ui":"console-ui", + "main":"console", + "type":[ + "Account", + "Creeper", + "File", + "Hot", + "Publish", + "Section", + "SectionWork", + "VideoSection" + ] + }, + "name":"ChopperBot", + "description":"A bot for the ChopperMC server", + "version":"1.0.0" +} \ No newline at end of file diff --git a/FileModule/src/test/java/org/example/util/FileUtilTest.java b/FileModule/src/test/java/org/example/util/FileUtilTest.java index cd0d98d..aadde4a 100644 --- a/FileModule/src/test/java/org/example/util/FileUtilTest.java +++ b/FileModule/src/test/java/org/example/util/FileUtilTest.java @@ -3,6 +3,9 @@ package org.example.util; import org.junit.jupiter.api.Test; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; /** * @author Genius @@ -14,4 +17,9 @@ public class FileUtilTest { public void testDelete() throws IOException { FileUtil.deleteDirectory("E:\\Project\\ChopperBot\\FileModule\\src\\main\\resources\\trash"); } + + @Test + public void testCreate() throws IOException { + Files.createDirectories(Paths.get("./Hello")); + } } diff --git a/FileModule/target/classes/org/example/bean/ModuleConfigSrc.class b/FileModule/target/classes/org/example/bean/ModuleConfigSrc.class new file mode 100644 index 0000000000000000000000000000000000000000..38e1a2474959b59b362a11bff22a4e906a4038b6 GIT binary patch literal 1790 zcmah}TW=dh7(HX}`j&0thFqEwdQFQjNz5f&8Ycm2S`o=96|RB=FHD@l-e$9FcGngC z7d#?<0DZ|rkswHYK=48(eiKm6>~0;WHXwOtzM1(h=bZV*fBgOA7Xa_z!#q+bXHh9| zuIgdAfIL?8usThbH?;L;7Hb0Oz;6poH}A^_vgSy)Q)`93?RM${nT`ru`gEpL9(Qgu zynQ7w)wEr8r+>Jo{CjfG;m&l^YfEQW`nFytn?~5R1A!||&+pXK*YdFEsM?;AZf(cg z?>nmDxnJ5H*3*@Pr1ETOv~YP>ptz&LuD5?z`tneP%4gz?`l>G-8mD4D-n*~bVZHpB zfbdT9OpXLhFYGE`Ag2*7MSA3;t=K-(3T69XNA?mTxwdp~=~|5F%AgyokS>+Cnddi+09WLEi}lj5tp&^kQjwv|+n;xFt|%d40dFZrfV6nHPju)puf{fC+(1|EHRT z3z)ZH;f#ejZC%7A>U7id!XWfzFBUAA%HXXW-nQ5!?^?Ky8}vE3`dE?z*1=1ddjU>~ z%4~|V!2F>+(AU+L;iq;;{%#OTH>C8}$6eRx4YKP><=recG>rEJmQE1Z?gQ^YB|R9| zxGmeE=ReHiCWUKy-a)@7U~Rju@*9o}0>#4L4i`>x#Ed_Z?!Kdfr8uxY3T9~MRN%db zJvGMt^CAD|%{8=@q-aRTY1yHwXVDP2Ho|WlHh~NO?T5>J$$36s!I@n_D@&VK&T*2f z8fU@Tto#V^m_`ay95d18B#N}H*a2su{|5wK!VJB1@H*#|_O4Wag7|^faP&kJJr{c< z(K@q+!6!#=lif@w_6_Fgrc*xVY;tZ?E8oL3j;g;Q^&QOgQT11(c9tv0NJmQ=#+_vj z>&D7cOe`3`6MCib()5lt`NM zku-dh%%r9HhA9lr7mM``V>1$9u~_etey&)3gzU;OGGA;ij;CFTLz7x*(z=W*Oss2O zrKP)Lmee(EP4+5M&&b6fSs_RiLOkQq$(q{?zcy&3HLi3c6*RCX>@r^EIMQ)96%rtP z|ATJYA_%Qmq4G0wV>`+k>Zs=#=s(&~X}lU0FX26%kia(a0k+7l#&wSC*Z95u4{SMG AYXATM literal 0 HcmV?d00001 diff --git a/FileModule/target/classes/org/example/init/ModuleConfigSrcInit.class b/FileModule/target/classes/org/example/init/ModuleConfigSrcInit.class new file mode 100644 index 0000000000000000000000000000000000000000..593c22dd0534f79ae9a2c62917e1ff52be56b070 GIT binary patch literal 4259 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 literal 0 HcmV?d00001 diff --git a/FileModule/target/classes/org/example/method/FileCondition.class b/FileModule/target/classes/org/example/method/FileCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..1f185c3442f6d945ab9fae6152996053b453d6ff GIT binary patch literal 283 zcmY+9y-EX75QWdg&8~?GViT;i)W%y{q!J+@7z`0C>?SvpV82G5mkU~_#=<0FHZ|pQgw+f}W8K=$o`jv1xm9&Y= z8P{A%l6p_bcD5u8pJP*dnb6a%F_#Z&h!uMo6E0)DcJj{E&hi-BQn-H<3)hA2Jf0R?@hK+|diEzk8Q}n#^?mF5 RgxsWuqN|4(nC7+|0zU>OOV$7Y literal 0 HcmV?d00001 diff --git a/FileModule/target/classes/org/example/util/FileUtil$1.class b/FileModule/target/classes/org/example/util/FileUtil$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7cdbfab27fc50c66596b446faee55195cdfb6d82 GIT binary patch literal 3119 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 literal 0 HcmV?d00001 diff --git a/FileModule/target/classes/org/example/util/JsonFileUtil.class b/FileModule/target/classes/org/example/util/JsonFileUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..276fc0a940b4e9b24bf0ad73c4ddd5f5a36fdbb8 GIT binary patch literal 7802 zcmbVRX<$^<75;8!k~hnPum*w~6e*C!K}D1#wE_iS8h9?8IDCeBP`D;3*< z*4Aomi(<8Eg+g5cEhfYT_q}c{U943rLDX97)`d##ciu8fGJ(jCd2`=g&OPTl-}&yH z!4O?XORv)%$ zxJR1z`tWNXw#%~neCQNkx-{&Nq3!@C;C^{L5X3?}7{o)^8N?bqERRPtJQ_qf9+Su8 zGV2L>Jn6$zV(e*oc}5=3%Hz2pp2tofej_h0Xm~Mzm+-QNR}=~&v6dDyt}v`77Hx?$~JEYc3w#J&zFyeeonsK`6 zuMf9Gjbulh!{;7~2UUId%;=fdxY%q;R-Q~h$LFw~E1Hf-#E!<>X0+48!aflP786L@ zvckBUrdV6Zh=d!BMkBPyNF-%6bXxtqI%ji*qU<~^Z+CNbLbmMz$1TBRSgvxlN_@r4AVPMYb`oOR&!S;d;FOb0cFAT>{` z-ex0dD1;Be*Z`T+XUk*z-K&2$7anxYp?WhS3)bqy>}BBuc`&En4f~NoC#!v;tv!_F zJIQ0-``DX$V8{A%qjJD*MjLVqwtyf2*X56Y}5dlX4TuL2n z%_89otUXxH2hiw+QfYBccFwwNBLifbhFuEB^_wlrW(~R4H^pAY#|VblP^Kql2PJD= zsrjNLOWAY;#@;Ed3cjkQh;!Qr)W4J8g}dG!5$57>)4BT zG`y?hJ^W3_SHNpg>E64$d#+k1)Y`M|vfbU=_gsE;&lNY7jkVu;)~@Nft7~`Xj*77> zS7~@($KUaRhJWbz5a%fjPX~}XE~xFjZT4)~y7%6VIzGb3Iu;|U;}d+U<6@0vW2u9}NRqXU9ZAy?-5Ktij(_4`tg1chw)AxGu)SQlN?~;N>Ur&Ebe?s5>G(JP z!$5o1uJ2j1aX^78Ozb_|4#9rW(cwBf_a$wsHt?}4W`3+eq zzc=-yb>(-%&hpFg!aeA-85U@=PI&tOIV&ex4xv*J_9K|?Ntv4G+`xm@k?wl7H0Kr> zm`Qr;&5JtBXp`w2@VTni2YqVA)QD-irMQ_yl$`&SvN(7A(bGqF9d~7(??XwbX^#-h_)1L*rV?lzM z?u3|0$P6MlGyC?)TE7`>c46R;##n;apMV9VG1%1Vsm->a(l*D`9A+;rF~WSiG6K4)j1lo*w*a{_!?&O&Cl!DTzIU-)yU_3U}TB+0py+SDXs5>rwd+%PULUlK&G(? zma!sx0Zv6V$GH@zv88Z2+x|RugB?H(KY6INcB^xCTgz!4_K#FGC7md!E$f7~9=@{e z@YR&cZeGjvB02>e!{s4pn1aDL7Q=D8wfk7x0Onb{=du3`oJq49XPt$5u4&*}3D_Q+ z&(;F=1flk0xQ2xqJrY;*6>Yd~ex04Xo^p*KI+fpoXrN@6zY~F-@b^ZdDg)Ml<4cB7 zzua5xn3ad$5>BOrx$v=hT> zH({vVKSKIPdQi57z6CK2(;2&sR|x{#U^cy;!;w?TlWL4-5<*PEG~zQIb*QA5bBUDD z;bf9yJXe2%^Sm6JQ=(`KZ6WKDJm8@ zR226j3^q*$yJtRoBu#@nDVj!7?zCC%L>+g|2SU<?kVhg@zDaxvkW zen60&vq6xZvzUPGNZQ8(9sH_Hhxxpn0jFs zUcnOi^qpLF8w>n)Ms)|4<1P!Psf=q0 zZMd4VI#oKWv5dMS%DbAgR}cw5SK68*x>AVz&oG6eGC3%+Qs~lHDry-&%lYwRC7c>o z?{Fs{`*yh))|O=m@AVi}mW3Y&iC^ZF^;pr331^q3ApG)um{?c79g_&+WQ8u2C{%a_ zvQmZhm?5n)g`Fs`$S=i7w{Sr{W=r< z1{3`z6a5wwy_?YYFwuL^hPNqUdvOWgVJhAw4DT^j@8e4T;pBDiyyL(KVq?d z%tHOtO0HZE+AxfXXtEMnU^#??l@JxI23QmD57S<1jszBJ z$(?+VaVC46xM_6S>m1bE0&XL}Q3BIR+EZs`_e$xOyvo?ACi%6@+ES;s9yMKan-(NX za@~p5lkE006(9HeEmfEUfeFKSCcA_2|KtQ_PL;XMZ_cGA#wblHuP9SP{8Fu++?Dhi zf44s$bA2C=SOd#S5rIn0S`M3esjt;ZYHda%^*t*WA;5&d@;IXAP-kw8b33*kVFR1= zF>baY3rfwuUtuGYMKRc5$V6$=(j_r&?Xup+7WeP-G+-3g6OZzN)e)n^=lLcB0@ z5c0K01Lomj0h7!YhbTn&$clJOVVX=c%ss&Zq?<*RElc}_GWH99!MUhbUg18o;-dKa mjKCV-ISLH%`;4~hxj*3j>*6b1Y!6&SL(s?tug(z%i+=%3R(_WN literal 0 HcmV?d00001 diff --git a/FileModule/target/test-classes/org/example/bean/Student.class b/FileModule/target/test-classes/org/example/bean/Student.class new file mode 100644 index 0000000000000000000000000000000000000000..5468203173be3194d9c85cb7d8376ed089e3d4a4 GIT binary patch literal 4628 zcmb_gOLH7o75;jrUo&b+Bgsw$W&!PK|zIr1^fuI<`)pcckb*!$l~5U=bpzs z?>jYr|L@y>0B{~} zglLqSn+{?FWmMc+IGhponJ5ht* zO0>Co$3Q{L9mLhz!dkT%Q!2Mn-L41mL4&f>J>(1h*DO=Stkz$S3=DU1uLt`iJazOW zMLb=heW6;f#>)m?nCWL&?LT_ZNyjhEp>Q#6_9m@fiMHtD@LIJVUOm{`3>!Cs&6)~k zR1Ru4gGN>G$eu z>sruYw&JisML+tGJWGk`^5Ri%Q&{=~wya{}Y=`kxRZ+)gX8V~~No06N$|^fE%fiYL z-AHQ7CA_Z7OTa6-!bV$qI=L`#rtdJtMyV{ZXH^x~$Pp1;UgvwyQnd6tq4YLeevYT) zL8`+hhjP@MSrt4-yzMFBmZt<0Psb8X9Y;m($==fx8lBiOy&BP1blPDF7fP)xnvZoU(?CIoAYg%97#*rSM2J#!xL8BaAuF6R8k|sYVW7fmt zIPh=`;~pmPh==0>`La#oQ4dpi%)s#n%?S@1_?(A%obxb;vmRCiT@dJ_vV9C6_wY$P z<>3a-aYA2=qPQ71f_*(hn!`43yZDBOS0MwuGxv4URA=7Ig6DQz8W*S^=2H@W0uiQQi|Qr&4)6T`wQ5? zx5d-%@-6CkTCLxXcEjYM(-vM1%5l`VR~R^<;FIKI<+kxt7$N*Po6Nkta=MP~Pee)1j(YFp^7k&E>&Tq(>#WeRPXb*UwNh@-+V~FiC z#%}T1ERXU2)4cyQIj(5!ID;pN@g8Npp&+q8qag7ht03{gRFHUKDM;+MF++GF;h)6G zHtiH?v!wYpRSOGf3Q?{}t|=}ZiXt6nYjPLI7x)!3tm5yG`89!z^2=6-L&|nfGbFYf z(%d}h70%x45gtwz<|s%JHhXU_qzZF{qzGHR!Xv4|96fZd*KE62cr-;=2ksNRo1-g5 ziPNiO?14%?MJ4C)bfTohucY2qB`0Oo9ez(~(aE;kr6c(rrxr=JWe_P4`7}h8IM-46 zC=2*uRZ0!ERZb|Ci|JOH535p&xvlcJQh6a=rS-5Xr7PMheWh{<%Sj8bb;r^cmAXZB zDL*KddPqo9=`y$3EhjsdO!5+){m=05vv?-$vaWgX!I$X?)P30$PIWGuYF~DdhkQA8 zN{xT;J4g%Poh$wlmU(aPPjG(J5k8sz|7VjgcPy+e0Tt62Yk%6nk21@4qUoqgD z?_lIEym{Ze53j{OShC16Sh9Ufc#Iqc! z8UC>NEr;x7%AUusuu90}PmH(lc|sO$;Z1yjkc~Uo#Tp?8uOq}dAs0X6ew8bSUogeb z5z6Dwd>pP38o=K;fWJt{!*$wr5o3<~9}GEgz4tKT5XG2lyoci&%>93`)w!3LZc~0Q z=`^#44MJ>c$#3s8?XF*|9S4ivOB|9}@T_VH{<7i`XMyo=>XY~B$A!fU=F*A6Vns^i zr6pAxg0eE)!rWar^Y<~L&Ie1T5PUPCxKb~gG*q$_iKU{1T;FPuhD)|0*=-UFNJ|w; zjv}#k5-CTKPNZl0x;8lRFpD4JOKLP(%;in>P#(kg@I1ZF@*%3=%Y;m3ejP6mvQXxf zzeUK#Yvg{BkfZYUFXZ26N=*l@VK7xNjQ6RcgJ#fURNRJ50fA{AsaI+$H`BSL1)uv}vRO literal 0 HcmV?d00001 diff --git a/FileModule/target/test-classes/org/example/util/FileUtilTest.class b/FileModule/target/test-classes/org/example/util/FileUtilTest.class new file mode 100644 index 0000000000000000000000000000000000000000..49f6b31c282102e82615031124152379f620b7f6 GIT binary patch literal 1074 zcmaizT~8B16o%iSrHgCjqlkclh>B9wj$Rm}HAXBLO{x$;OmuIiWo)O}?liNr27i`U zHYWN5{87d;OIwSA?!}&&^YOfA&&>Y#`Sm-12e{|M$Hg&R^09!$FD7Wu9v$m;X zhNY@D4K5EwyAw*DSQYZ;DwJ<%u_t3&X7DZ94H-&HD1Y;?E<0A~DE4rZVSXoxtZK`B z6)R$|N0GK74KpmH=vG2K@>bGORvIokiVt%uMv9cXs}oa~PMTqAxPwwld=z<{MV{f| z=A&TS=$5S8pwiTxjx^7-4P5#weUOAQh)q3c3l#-M#wjrltPye3!)hKytTA{c{z8VK zW|(wj9*U^Jcdb!T!^5pSZsQKaN*aok<{ya7g{62cu`->_dVlAkln2LMhQ)sl@tD+B z&9%=kol20x%dNpoX`ZKo=wJ`hL)cJ;0NQ+Fm|3m<`3>dbyFPo+{7hI=w# z?n==69PKz+Ms{@V3)p8`j9{GJxzst130k{UO28zh$kIPSo=jSNpLQmjBomZie;n4y)Exl1$ LKN@pH9l`uBtz8B& literal 0 HcmV?d00001 diff --git a/FileModule/target/test-classes/org/example/util/JsonFileUtilTest.class b/FileModule/target/test-classes/org/example/util/JsonFileUtilTest.class new file mode 100644 index 0000000000000000000000000000000000000000..46f933c68400d0c3fdf958702d56ba07b5ae4d84 GIT binary patch literal 3088 zcmbtWYg-dX7(ElByM(B)Ad2;Zf{0>G<&LpbNKw%sC`hEHmjzZ>n(U_8jY9AD`}K$P zL;In|_Gy1We^j5I+1(@?FSL*5Lw4q!nRCv2=AGI7`=8(c0x*J~VmOJEf|pfHsko@( zl8VbJrd3>N!a-bBkybII;+l%tCd}b_3=!N=F|T4FhMQPak&zQ`$Ao;NMi9T#Zm zJ-H|lP1&o4z@D^e8P`hrWuv&DFXtH1()Nm;ThxoD><7W9yKXuHU1__xmM}K;d?9Bf zO0JnpTybpcqM0*pva?_~Zc?D_UeR=oR8DuCX{$0Wpg3-6)v#QF19dRVhHfS1{V}fY zxKXlPGjA-Kj!6L%mSwxTYuXn14|)qXN=ziNQ7Vw7n9vJmA|Q?z4Slsn7|rViF4~jc z(C_NL+8Mn-il|GWGE;9Lr(0`@+2svmMT+0$iLZfl)b%H~<^n9c88mI$*{~4 zlZsxxIlmwfNzF6Jtu(DQI(&oq`>na0zQtA?4wz}=`gMWEv;6~uL&GDZV_cFkQtLWL z8plRQhKB|R`p+sT$=P?MhE5b-K>;9W3QHSM%F2=Wb?Xd zWs8R6rRHP>;=v}L*`QAfHseTQOJL$@&;qD_4@+u$JC1ko?z5o{1ZeN!eFY!H@gY7E zxbO_}0=$p$iGok#_za&5?5Dg+Xv(D^0 z0+)LqJy-uHa?+pVX^^hT!&vi?Cs$zUDWM;w50m+qLLIhmS#mnGFbF*ng~C+aS*+4eJgA1$SCF)xg(g?^2sI*DBYLK!12;orGFukI?xy zeFbFNncDQKeej7`+lmjD?3UvidET&giKl0;Zz7wk%Hj%-iw zy_k|gE@45Tst)n+S}jP{oJApF8#ILh}x4T~t7IZGRPasyFO+fF*GD zF{Ine$5Hh1J4^m{K*;wc|4*}*;8V!xsrwMWuo1!Y{NL#X_u&lNaeo4*zQ7*Yxj5o2 z{uxbd0ZV@%vZOUMYg$y>q3zTZO)aBQi)l?-T-#N~?)&_j(3-WDzB06o*2+g)8GAEY zJ6roQzhb}Ep+(9#@Ee|!omTCj->C`eK_iI{LBlcrccB}{DYSqu60EODi@v!kMe&!cqcSVrse zjH(IH5aq-X3K%8u7)j2BQtzmew*=(%l;=s=;O*dgkow^&Wmm(W=q}^<%;^W{5g_l0 s%)`9n + + ChopperBot + org.example + 1.0-SNAPSHOT + + 4.0.0 + + common + jar + + common + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + diff --git a/common/src/main/java/org/example/App.java b/common/src/main/java/org/example/App.java new file mode 100644 index 0000000..5f21d2e --- /dev/null +++ b/common/src/main/java/org/example/App.java @@ -0,0 +1,13 @@ +package org.example; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/common/src/main/java/org/example/init/InitMachine.java b/common/src/main/java/org/example/init/InitMachine.java new file mode 100644 index 0000000..45a2ac8 --- /dev/null +++ b/common/src/main/java/org/example/init/InitMachine.java @@ -0,0 +1,13 @@ +package org.example.init; + + +/** + * @author Genius + * @date 2023/04/20 19:36 + **/ + +//模块初始化接口 +public interface InitMachine { + + boolean init(); +} diff --git a/common/src/test/java/org/example/AppTest.java b/common/src/test/java/org/example/AppTest.java new file mode 100644 index 0000000..d5f435d --- /dev/null +++ b/common/src/test/java/org/example/AppTest.java @@ -0,0 +1,38 @@ +package org.example; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/common/target/classes/org/example/App.class b/common/target/classes/org/example/App.class new file mode 100644 index 0000000000000000000000000000000000000000..98ea2dc2ff4aaabcb5d2dca99b5c795388c56597 GIT binary patch literal 567 zcmZuuO-sW-5Pe(QCXMl{+WP%{sUFPHgCd9^9;y~9dhoPum%5T<%bJS*EIlZA@CW## z#Ftbk6&Es-c{B57-tO1;$0vY&YgB5||p^kNOBrsOnxfaNu zn2r*ds_R%?^rM!tSF#lnDc4O~hS$>SH2wwi$(?=>n5i4v4b+p2dZ7xAd%Xh^MN-EC z)!J?SUOvholyNs`CRWGYgKUtrUAE5tlNOjhSIM2}G^CZ0N|a@x*ED_GR;M~$#^sE? zl-7p>*TJffHLMHxXDSTM#*MLIXVbxkk4t3~!5vck6kf?}PV){%} z1_HDR8r(ji1|=gZoXt2!VF9O?7KM~vsr{#%8x{B%>B)iRaA`}70(wDT*nNk1$g$Nt^dGGGedDmB-$Y9};*>f$c8ah9o6SV}^K{UxDK3sE9U) FxgRm`bUTF-8 + + + org.example + FileModule + 1.0-SNAPSHOT + + + org.example + common + 1.0-SNAPSHOT + + + org.example + FileModule + 1.0-SNAPSHOT + + + diff --git a/console/src/main/java/org/example/ConsoleApplication.java b/console/src/main/java/org/example/ConsoleApplication.java index 217d8c1..44b4e04 100644 --- a/console/src/main/java/org/example/ConsoleApplication.java +++ b/console/src/main/java/org/example/ConsoleApplication.java @@ -1,9 +1,13 @@ package org.example; +import org.example.init.InitWorld; +import org.example.init.ModuleConfigSrcInit; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.util.List; + /** * @author Genius * @date 2023/04/20 00:16 @@ -13,7 +17,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; public class ConsoleApplication { public static void main(String[] args) { - SpringApplication.run(ConsoleApplication.class, args); + + if (InitWorld.getInstance() + .setInitMachines(List.of(new ModuleConfigSrcInit())) + .start()) { + SpringApplication.run(ConsoleApplication.class, args); + } } } diff --git a/console/src/main/java/org/example/init/InitWorld.java b/console/src/main/java/org/example/init/InitWorld.java new file mode 100644 index 0000000..94e1ea9 --- /dev/null +++ b/console/src/main/java/org/example/init/InitWorld.java @@ -0,0 +1,47 @@ +package org.example.init; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Genius + * @date 2023/04/20 19:36 + **/ + +//初始化整个项目,各个模块配置文件 +public class InitWorld { + + private Logger logger = LoggerFactory.getLogger(InitWorld.class); + private static volatile InitWorld initWorld = new InitWorld(); + private List initMachines; + + private InitWorld(){ + } + + public InitWorld setInitMachines(List initMachines){ + this.initMachines = initMachines; + return this; + } + + public static InitWorld getInstance(){ + return initWorld; + } + + public boolean start(){ + if(initWorld == null){ + logger.error("已经初始化过了"); + return true; + } + for(InitMachine initMachine : initMachines){ + if(!initMachine.init()){ + logger.error("{}初始化失败!!", initMachine.getClass().getName()); + return false; + } + } + + return true; + } +} diff --git a/pom.xml b/pom.xml index 7f3496f..9e11714 100644 --- a/pom.xml +++ b/pom.xml @@ -16,6 +16,7 @@ HotModule PublishModule console + common pom @@ -35,6 +36,7 @@ 2.3.9.RELEASE +