From 0e66e801f4191e016f653602d3ef1184baa50adc Mon Sep 17 00:00:00 2001 From: foreveriss <277821523@qq.com> Date: Thu, 29 Jun 2017 23:46:06 +0800 Subject: [PATCH] =?UTF-8?q?springboot=E7=94=A8=E6=B3=95=E5=92=8C=E4=B8=8E?= =?UTF-8?q?=E5=90=84=E7=A7=8D=E6=A1=86=E6=9E=B6=E3=80=81=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E7=AD=89=E7=BB=93=E5=90=88=E4=BD=BF=E7=94=A8=EF=BC=8C=E5=8C=85?= =?UTF-8?q?=E6=8B=ACspringboot=E7=9A=84=E6=B3=A8=E8=A7=A3=E5=88=86?= =?UTF-8?q?=E6=9E=90=E3=80=81=E8=B7=AF=E5=BE=84=E5=88=86=E6=9E=90=E3=80=81?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E5=86=85=E7=BD=AE=E5=AF=B9=E8=B1=A1=E3=80=81?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=89=93=E5=8C=85=E3=80=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=B1=9E=E6=80=A7=E3=80=81=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6=E3=80=81Bean=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E3=80=81=E6=A8=A1=E6=9D=BF=E6=B8=B2=E6=9F=93=E3=80=81?= =?UTF-8?q?=E5=9F=BA=E4=BA=8Eyml=E7=9A=84=E5=A4=9Aprofile=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E3=80=81=E5=9F=BA=E4=BA=8Eproperties=E7=9A=84?= =?UTF-8?q?=E5=A4=9Aprofile=E3=80=81=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E3=80=81=E9=85=8D=E7=BD=AE=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=A1=B5=E3=80=81=E5=85=A8=E5=B1=80=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E3=80=81=E9=85=8D=E7=BD=AETomcat=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E3=80=81=E9=85=8D=E7=BD=AEhttps=E8=AE=BF=E9=97=AE=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E3=80=81=E4=BF=A1=E6=81=AF=E6=98=BE=E7=A4=BA=E3=80=81?= =?UTF-8?q?=E5=86=85=E7=BD=AE=E5=AF=B9=E8=B1=A1=E3=80=81=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E4=BF=A1=E6=81=AF=E3=80=81=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E3=80=81=E4=BD=BF=E7=94=A8=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E3=80=81=E6=8B=A6=E6=88=AA=E5=99=A8?= =?UTF-8?q?=E3=80=81=E9=85=8D=E7=BD=AEdruid=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=B1=A0=E3=80=81=E6=95=B4=E5=90=88MyBatis?= =?UTF-8?q?=E6=A1=86=E6=9E=B6=E3=80=81=E4=BA=8B=E5=8A=A1=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E3=80=81Druid=E7=9B=91=E6=8E=A7=E3=80=81=E6=95=B4=E5=90=88Acti?= =?UTF-8?q?veMQ=E3=80=81=E6=95=B4=E5=90=88RabbitMQ=E3=80=81=E6=95=B4?= =?UTF-8?q?=E5=90=88kafka=E3=80=81=E9=82=AE=E4=BB=B6=E5=8F=91=E9=80=81?= =?UTF-8?q?=E3=80=81=E5=AE=9A=E6=97=B6=E8=B0=83=E5=BA=A6=E3=80=81Actuator?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E3=80=81=E6=95=B4=E5=90=88Redis=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E3=80=81=E6=95=B4=E5=90=88Restfui=E6=A1=86?= =?UTF-8?q?=E6=9E=B6=E3=80=81=E6=95=B4=E5=90=88Shiro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 4 + .project | 23 ++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.m2e.core.prefs | 4 + bin/pom.xml | 26 ++ microboot-activemq/.classpath | 36 ++ microboot-activemq/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-activemq/pom.xml | 72 ++++ .../mldn/microboot/StartSpringBootMain.java | 13 + .../mldn/microboot/config/ActiveMQConfig.java | 17 + .../cn/mldn/microboot/config/DruidConfig.java | 42 +++ .../consumer/MessageConsumerService.java | 12 + .../microboot/controller/DeptController.java | 20 ++ .../java/cn/mldn/microboot/dao/IDeptDAO.java | 12 + .../producer/IMessageProducerService.java | 5 + .../impl/MessageProducerServiceImpl.java | 21 ++ .../mldn/microboot/service/IDeptService.java | 15 + .../service/impl/DeptServiceImpl.java | 25 ++ .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 11 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../cn/mldn/microboot/test/TestActiveMQ.java | 26 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-activemq/pom.properties | 7 + .../maven/cn.mldn/microboot-activemq/pom.xml | 72 ++++ .../target/classes/application.yml | 11 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 845 bytes .../microboot/config/ActiveMQConfig.class | Bin 0 -> 724 bytes .../mldn/microboot/config/DruidConfig.class | Bin 0 -> 2124 bytes .../consumer/MessageConsumerService.class | Bin 0 -> 978 bytes .../microboot/controller/DeptController.class | Bin 0 -> 930 bytes .../cn/mldn/microboot/dao/IDeptDAO.class | Bin 0 -> 361 bytes .../producer/IMessageProducerService.class | Bin 0 -> 200 bytes .../impl/MessageProducerServiceImpl.class | Bin 0 -> 975 bytes .../mldn/microboot/service/IDeptService.class | Bin 0 -> 509 bytes .../service/impl/DeptServiceImpl.class | Bin 0 -> 958 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + microboot-activemq/target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../cn/mldn/microboot/test/TestActiveMQ.class | Bin 0 -> 1271 bytes microboot-actuator/.classpath | 36 ++ microboot-actuator/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-actuator/pom.xml | 72 ++++ .../mldn/microboot/StartSpringBootMain.java | 11 + .../controller/AbstractBaseController.java | 15 + .../src/main/resources/application.yml | 5 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-actuator/pom.properties | 7 + .../maven/cn.mldn/microboot-actuator/pom.xml | 72 ++++ .../target/classes/application.yml | 5 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 766 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + microboot-actuator/target/classes/logback.xml | 43 +++ .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + microboot-advance/.classpath | 36 ++ microboot-advance/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-advance/.springBeans | 16 + microboot-advance/pom.xml | 52 +++ .../mldn/microboot/StartSpringBootMain.java | 10 + .../controller/MessageController.java | 26 ++ .../controller/AbstractBaseController.java | 15 + .../resources/application-beta.properties | 2 + .../main/resources/application-dev.properties | 2 + .../resources/application-product.properties | 2 + .../src/main/resources/application.properties | 1 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../src/main/view/static/message_index.html | 10 + .../view/templates/message/message_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../microboot/test/TestMessageController.java | 19 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-advance/pom.properties | 7 + .../maven/cn.mldn/microboot-advance/pom.xml | 52 +++ .../classes/application-beta.properties | 2 + .../target/classes/application-dev.properties | 2 + .../classes/application-product.properties | 2 + .../target/classes/application.properties | 1 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 766 bytes .../controller/MessageController.class | Bin 0 -> 1077 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../target/classes/static/message_index.html | 10 + .../templates/message/message_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../test/TestMessageController.class | Bin 0 -> 791 bytes microboot-base/.classpath | 26 ++ microboot-base/.project | 35 ++ .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-base/.springBeans | 16 + microboot-base/pom.xml | 42 +++ .../mldn/microboot/StartSpringBootMain.java | 10 + .../microboot/controller/HelloController.java | 35 ++ .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-base/pom.properties | 7 + .../maven/cn.mldn/microboot-base/pom.xml | 42 +++ .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 766 bytes .../controller/HelloController.class | Bin 0 -> 2495 bytes .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes microboot-email/.classpath | 36 ++ microboot-email/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-email/pom.xml | 67 ++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 11 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../test/java/cn/mldn/microboot/TestMail.java | 25 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-email/pom.properties | 7 + .../maven/cn.mldn/microboot-email/pom.xml | 67 ++++ .../target/classes/application.yml | 11 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + microboot-email/target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/TestMail.class | Bin 0 -> 1473 bytes microboot-error/.classpath | 36 ++ microboot-error/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-error/pom.xml | 52 +++ .../mldn/microboot/StartSpringBootMain.java | 14 + .../advice/GlobalExceptionHandler.java | 50 +++ .../microboot/config/ErrorPageConfig.java | 29 ++ .../controller/MemberController.java | 29 ++ .../controller/AbstractBaseController.java | 27 ++ .../java/cn/mldn/microboot/vo/Member.java | 41 +++ .../src/main/resources/application.yml | 2 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/view/static/error-400.html | 11 + .../src/main/view/static/error-404.html | 11 + .../src/main/view/static/error-500.html | 11 + .../src/main/view/static/images/dog.jpg | Bin 0 -> 185935 bytes .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/error.html | 12 + .../src/main/view/templates/member_add.html | 18 + .../view/templates/message/message_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../microboot/test/TestMessageController.java | 19 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-error/pom.properties | 7 + .../maven/cn.mldn/microboot-error/pom.xml | 52 +++ .../target/classes/application.yml | 2 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 863 bytes .../GlobalExceptionHandler$1ErrorInfo.class | Bin 0 -> 1427 bytes .../advice/GlobalExceptionHandler.class | Bin 0 -> 1587 bytes .../microboot/config/ErrorPageConfig.class | Bin 0 -> 417 bytes .../controller/MemberController.class | Bin 0 -> 1416 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1701 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/static/error-400.html | 11 + .../target/classes/static/error-404.html | 11 + .../target/classes/static/error-500.html | 11 + .../target/classes/static/images/dog.jpg | Bin 0 -> 185935 bytes .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../target/classes/static/message_index.html | 10 + .../target/classes/templates/error.html | 12 + .../target/classes/templates/member_add.html | 18 + .../templates/message/message_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../test/TestMessageController.class | Bin 0 -> 790 bytes microboot-interceptor/.classpath | 36 ++ microboot-interceptor/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-interceptor/pom.xml | 63 ++++ .../mldn/microboot/StartSpringBootMain.java | 11 + .../config/MyWebApplicationConfig.java | 16 + .../mldn/microboot/config/ServiceAspect.java | 24 ++ .../controller/MemberController.java | 32 ++ .../microboot/service/IMemberService.java | 7 + .../service/impl/MemberServiceImpl.java | 19 + .../controller/AbstractBaseController.java | 15 + .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../main/java/cn/mldn/util/MyInterceptor.java | 38 ++ .../src/main/resources/application.yml | 12 + .../src/main/resources/fastdfs_client.conf | 6 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/member_add.html | 14 + .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../microboot/test/TestMessageController.java | 19 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-interceptor/pom.properties | 7 + .../cn.mldn/microboot-interceptor/pom.xml | 63 ++++ .../target/classes/application.yml | 12 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 766 bytes .../config/MyWebApplicationConfig.class | Bin 0 -> 1297 bytes .../mldn/microboot/config/ServiceAspect.class | Bin 0 -> 1660 bytes .../controller/MemberController.class | Bin 0 -> 1420 bytes .../microboot/service/IMemberService.class | Bin 0 -> 184 bytes .../service/impl/MemberServiceImpl.class | Bin 0 -> 989 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../classes/cn/mldn/util/MyInterceptor.class | Bin 0 -> 2342 bytes .../target/classes/fastdfs_client.conf | 6 + .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/member_add.html | 14 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../test/TestMessageController.class | Bin 0 -> 790 bytes microboot-kafka-consumer/.classpath | 36 ++ microboot-kafka-consumer/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-kafka-consumer/pom.xml | 62 ++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../consumer/MessageConsumerService.java | 14 + .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 17 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 16 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-kafka-consumer/pom.properties | 7 + .../cn.mldn/microboot-kafka-consumer/pom.xml | 62 ++++ .../target/classes/application.yml | 17 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../consumer/MessageConsumerService.class | Bin 0 -> 1503 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 832 bytes microboot-kafka-producer/.classpath | 36 ++ microboot-kafka-producer/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-kafka-producer/pom.xml | 61 ++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../service/IMessageProducerService.java | 5 + .../impl/MessageProducerServiceImpl.java | 19 + .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 16 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../cn/mldn/microboot/TestMessageService.java | 24 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-kafka-producer/pom.properties | 7 + .../cn.mldn/microboot-kafka-producer/pom.xml | 61 ++++ .../target/classes/application.yml | 16 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../service/IMessageProducerService.class | Bin 0 -> 192 bytes .../impl/MessageProducerServiceImpl.class | Bin 0 -> 1060 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../mldn/microboot/TestMessageService.class | Bin 0 -> 1270 bytes microboot-mybatis/.classpath | 36 ++ microboot-mybatis/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-mybatis/pom.xml | 69 ++++ .../mldn/microboot/StartSpringBootMain.java | 13 + .../cn/mldn/microboot/config/DruidConfig.java | 42 +++ .../microboot/controller/DeptController.java | 20 ++ .../java/cn/mldn/microboot/dao/IDeptDAO.java | 12 + .../mldn/microboot/service/IDeptService.java | 15 + .../service/impl/DeptServiceImpl.java | 25 ++ .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 22 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../mldn/microboot/test/TestDataSource.java | 24 ++ .../mldn/microboot/test/TestDeptService.java | 31 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-mybatis/pom.properties | 7 + .../maven/cn.mldn/microboot-mybatis/pom.xml | 69 ++++ .../target/classes/application.yml | 22 ++ .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 845 bytes .../mldn/microboot/config/DruidConfig.class | Bin 0 -> 2124 bytes .../microboot/controller/DeptController.class | Bin 0 -> 930 bytes .../cn/mldn/microboot/dao/IDeptDAO.class | Bin 0 -> 361 bytes .../mldn/microboot/service/IDeptService.class | Bin 0 -> 509 bytes .../service/impl/DeptServiceImpl.class | Bin 0 -> 958 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + microboot-mybatis/target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../mldn/microboot/test/TestDataSource.class | Bin 0 -> 1045 bytes .../mldn/microboot/test/TestDeptService.class | Bin 0 -> 1488 bytes microboot-rabbitmq-consumer/.classpath | 36 ++ microboot-rabbitmq-consumer/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-rabbitmq-consumer/pom.xml | 61 ++++ .../mldn/microboot/StartSpringBootMain.java | 13 + .../mldn/microboot/config/ConsumerConfig.java | 27 ++ .../consumer/MessageConsumerService.java | 12 + .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 10 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 16 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../pom.properties | 7 + .../microboot-rabbitmq-consumer/pom.xml | 61 ++++ .../target/classes/application.yml | 10 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 845 bytes .../microboot/config/ConsumerConfig.class | Bin 0 -> 2122 bytes .../consumer/MessageConsumerService.class | Bin 0 -> 993 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 832 bytes microboot-rabbitmq-producer/.classpath | 36 ++ microboot-rabbitmq-producer/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-rabbitmq-producer/pom.xml | 55 +++ .../mldn/microboot/StartSpringBootMain.java | 13 + .../mldn/microboot/config/ProducerConfig.java | 27 ++ .../producer/IMessageProducerService.java | 5 + .../impl/MessageProducerServiceImpl.java | 20 ++ .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 10 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../cn/mldn/microboot/test/TestRabbitMQ.java | 26 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../pom.properties | 7 + .../microboot-rabbitmq-producer/pom.xml | 55 +++ .../target/classes/application.yml | 10 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 845 bytes .../microboot/config/ProducerConfig.class | Bin 0 -> 2122 bytes .../producer/IMessageProducerService.class | Bin 0 -> 200 bytes .../impl/MessageProducerServiceImpl.class | Bin 0 -> 1001 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../cn/mldn/microboot/test/TestRabbitMQ.class | Bin 0 -> 1271 bytes microboot-redis/.classpath | 36 ++ microboot-redis/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-redis/pom.xml | 73 ++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../cn/mldn/microboot/config/RedisConfig.java | 22 ++ .../mldn/microboot/config/RedisTwoConfig.java | 53 +++ .../controller/AbstractBaseController.java | 15 + .../util/redis/RedisObjectSerializer.java | 29 ++ .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 25 ++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 23 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../java/cn/mldn/microboot/TestRedis.java | 29 ++ .../java/cn/mldn/microboot/TestRedisTwo.java | 29 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-redis/pom.properties | 7 + .../maven/cn.mldn/microboot-redis/pom.xml | 73 ++++ .../target/classes/application.yml | 23 ++ .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../mldn/microboot/config/RedisConfig.class | Bin 0 -> 1624 bytes .../microboot/config/RedisTwoConfig.class | Bin 0 -> 3333 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../util/redis/RedisObjectSerializer.class | Bin 0 -> 1700 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1125 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + microboot-redis/target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/TestRedis.class | Bin 0 -> 1825 bytes .../cn/mldn/microboot/TestRedisTwo.class | Bin 0 -> 1857 bytes microboot-restful-api/.classpath | 36 ++ microboot-restful-api/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-restful-api/pom.xml | 73 ++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../controller/AbstractBaseController.java | 15 + .../java/cn/mldn/microboot/vo/Member.java | 48 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 23 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-restful-api/pom.properties | 7 + .../cn.mldn/microboot-restful-api/pom.xml | 73 ++++ .../target/classes/application.yml | 23 ++ .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1970 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + microboot-restful-consumer/.classpath | 36 ++ microboot-restful-consumer/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-restful-consumer/pom.xml | 78 ++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../cn/mldn/microboot/config/RestConfig.java | 13 + .../controller/MemberConsumerController.java | 33 ++ .../controller/AbstractBaseController.java | 27 ++ .../java/cn/mldn/microboot/vo/LogInfo.java | 13 + .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 2 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/member_show.html | 14 + .../src/main/view/templates/upload_show.html | 12 + .../java/cn/mldn/microboot/TestLogger.java | 28 ++ .../cn/mldn/microboot/TestMemberRestful.java | 34 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-restful-consumer/pom.properties | 7 + .../microboot-restful-consumer/pom.xml | 78 ++++ .../target/classes/application.yml | 2 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../cn/mldn/microboot/config/RestConfig.class | Bin 0 -> 648 bytes .../controller/MemberConsumerController.class | Bin 0 -> 2142 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../cn/mldn/microboot/vo/LogInfo.class | Bin 0 -> 541 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/member_show.html | 14 + .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/TestLogger.class | Bin 0 -> 1261 bytes .../cn/mldn/microboot/TestMemberRestful.class | Bin 0 -> 1814 bytes microboot-restful-log/.classpath | 36 ++ microboot-restful-log/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-restful-log/pom.xml | 83 +++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../controller/MessageController.java | 17 + .../controller/AbstractBaseController.java | 26 ++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 31 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-restful-log/pom.properties | 7 + .../cn.mldn/microboot-restful-log/pom.xml | 83 +++++ .../target/classes/application.yml | 31 ++ .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../controller/MessageController.class | Bin 0 -> 1024 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + microboot-restful-provider/.classpath | 36 ++ microboot-restful-provider/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-restful-provider/pom.xml | 79 ++++ .../mldn/microboot/StartSpringBootMain.java | 15 + .../controller/MemberController.java | 30 ++ .../controller/AbstractBaseController.java | 26 ++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 23 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-restful-provider/pom.properties | 7 + .../microboot-restful-provider/pom.xml | 79 ++++ .../target/classes/application.yml | 23 ++ .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1017 bytes .../controller/MemberController.class | Bin 0 -> 2160 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + microboot-restful-swagger/.classpath | 36 ++ microboot-restful-swagger/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-restful-swagger/pom.xml | 91 +++++ .../mldn/microboot/StartSpringBootMain.java | 11 + .../mldn/microboot/config/Swagger2Config.java | 31 ++ .../controller/MemberController.java | 39 ++ .../controller/AbstractBaseController.java | 26 ++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 23 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-restful-swagger/pom.properties | 7 + .../cn.mldn/microboot-restful-swagger/pom.xml | 91 +++++ .../target/classes/application.yml | 23 ++ .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 766 bytes .../microboot/config/Swagger2Config.class | Bin 0 -> 2303 bytes .../controller/MemberController.class | Bin 0 -> 2675 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + microboot-shiro-api/.classpath | 36 ++ microboot-shiro-api/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-shiro-api/.springBeans | 15 + microboot-shiro-api/pom.xml | 73 ++++ .../java/cn/mldn/util/enctype/MD5Code.java | 336 ++++++++++++++++++ .../cn/mldn/util/enctype/PasswordUtil.java | 29 ++ .../src/main/java/cn/mldn/vo/Member.java | 40 +++ .../src/main/resources/application.yml | 23 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-shiro-api/pom.properties | 7 + .../maven/cn.mldn/microboot-shiro-api/pom.xml | 73 ++++ .../target/classes/application.yml | 23 ++ .../cn/mldn/util/enctype/MD5Code.class | Bin 0 -> 7864 bytes .../cn/mldn/util/enctype/PasswordUtil.class | Bin 0 -> 1393 bytes .../target/classes/cn/mldn/vo/Member.class | Bin 0 -> 1555 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + microboot-shiro-member-provider/.classpath | 36 ++ microboot-shiro-member-provider/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-shiro-member-provider/.springBeans | 16 + microboot-shiro-member-provider/pom.xml | 90 +++++ ...berServiceProviderStartSpringBootMain.java | 15 + .../controller/MemberController.java | 23 ++ .../cn/mldn/microboot/dao/IActionDAO.java | 10 + .../cn/mldn/microboot/dao/IMemberDAO.java | 10 + .../java/cn/mldn/microboot/dao/IRoleDAO.java | 10 + .../microboot/service/IMemberService.java | 11 + .../service/impl/MemberServiceImpl.java | 37 ++ .../controller/AbstractBaseController.java | 26 ++ .../src/main/java/数据库创建脚本.sql | 41 +++ .../src/main/resources/application.yml | 21 ++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../mybatis/mapper/cn/mldn/Action.xml | 10 + .../mybatis/mapper/cn/mldn/Member.xml | 8 + .../resources/mybatis/mapper/cn/mldn/Role.xml | 10 + .../main/resources/mybatis/mybatis.cfg.xml | 9 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../mldn/microboot/TestMemberController.java | 40 +++ .../cn/mldn/microboot/TestMemberService.java | 27 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../pom.properties | 7 + .../microboot-shiro-member-provider/pom.xml | 90 +++++ .../target/classes/application.yml | 21 ++ ...erServiceProviderStartSpringBootMain.class | Bin 0 -> 1080 bytes .../controller/MemberController.class | Bin 0 -> 1181 bytes .../cn/mldn/microboot/dao/IActionDAO.class | Bin 0 -> 352 bytes .../cn/mldn/microboot/dao/IMemberDAO.class | Bin 0 -> 265 bytes .../cn/mldn/microboot/dao/IRoleDAO.class | Bin 0 -> 346 bytes .../microboot/service/IMemberService.class | Bin 0 -> 369 bytes .../service/impl/MemberServiceImpl.class | Bin 0 -> 1719 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Action.xml | 10 + .../classes/mybatis/mapper/cn/mldn/Member.xml | 8 + .../classes/mybatis/mapper/cn/mldn/Role.xml | 10 + .../target/classes/mybatis/mybatis.cfg.xml | 9 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../mldn/microboot/TestMemberController.class | Bin 0 -> 2329 bytes .../cn/mldn/microboot/TestMemberService.class | Bin 0 -> 1323 bytes microboot-shiro-web/.classpath | 36 ++ microboot-shiro-web/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-shiro-web/.springBeans | 16 + microboot-shiro-web/pom.xml | 110 ++++++ .../ShiroWEBStartSpringBootMain.java | 15 + .../cn/mldn/microboot/cache/RedisCache.java | 103 ++++++ .../microboot/cache/RedisCacheManager.java | 29 ++ .../cn/mldn/microboot/config/RedisConfig.java | 26 ++ .../cn/mldn/microboot/config/RestConfig.java | 13 + .../cn/mldn/microboot/config/ShiroConfig.java | 170 +++++++++ .../microboot/controller/DeptController.java | 20 ++ .../controller/MemberController.java | 12 + .../realm/CustomerCredentialsMatcher.java | 19 + .../cn/mldn/microboot/realm/MemberRealm.java | 77 ++++ .../microboot/session/RedisSessionDAO.java | 52 +++ .../microboot/util/RedisObjectSerializer.java | 36 ++ .../controller/AbstractBaseController.java | 26 ++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 14 + .../src/main/resources/ehcache.xml | 53 +++ .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/logback.xml | 43 +++ .../resources/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../main/resources/mybatis/mybatis.cfg.xml | 10 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/dept_show.html | 17 + .../src/main/view/templates/member_login.html | 17 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-shiro-web/pom.properties | 7 + .../maven/cn.mldn/microboot-shiro-web/pom.xml | 110 ++++++ .../target/classes/application.yml | 14 + .../ShiroWEBStartSpringBootMain.class | Bin 0 -> 1041 bytes .../mldn/microboot/cache/RedisCache$1.class | Bin 0 -> 1334 bytes .../mldn/microboot/cache/RedisCache$2.class | Bin 0 -> 1444 bytes .../mldn/microboot/cache/RedisCache$3.class | Bin 0 -> 1988 bytes .../mldn/microboot/cache/RedisCache$4.class | Bin 0 -> 2046 bytes .../cn/mldn/microboot/cache/RedisCache.class | Bin 0 -> 3738 bytes .../microboot/cache/RedisCacheManager.class | Bin 0 -> 1816 bytes .../mldn/microboot/config/RedisConfig.class | Bin 0 -> 1802 bytes .../cn/mldn/microboot/config/RestConfig.class | Bin 0 -> 648 bytes .../mldn/microboot/config/ShiroConfig.class | Bin 0 -> 8456 bytes .../microboot/controller/DeptController.class | Bin 0 -> 878 bytes .../controller/MemberController.class | Bin 0 -> 623 bytes .../realm/CustomerCredentialsMatcher.class | Bin 0 -> 1263 bytes .../cn/mldn/microboot/realm/MemberRealm.class | Bin 0 -> 4361 bytes .../microboot/session/RedisSessionDAO.class | Bin 0 -> 2568 bytes .../util/RedisObjectSerializer.class | Bin 0 -> 2004 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../target/classes/ehcache.xml | 53 +++ .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/logback.xml | 43 +++ .../classes/mybatis/mapper/cn/mldn/Dept.xml | 11 + .../target/classes/mybatis/mybatis.cfg.xml | 10 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/dept_show.html | 17 + .../classes/templates/member_login.html | 17 + microboot-task/.classpath | 36 ++ microboot-task/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-task/pom.xml | 67 ++++ .../mldn/microboot/StartSpringBootMain.java | 13 + .../microboot/config/SchedulerConfig.java | 16 + .../cn/mldn/microboot/task/MyScheduler.java | 29 ++ .../controller/AbstractBaseController.java | 15 + .../main/java/cn/mldn/microboot/vo/Dept.java | 25 ++ .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/java/数据库创建脚本.sql | 13 + .../src/main/resources/application.yml | 3 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + microboot-task/src/main/resources/logback.xml | 43 +++ .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-task/pom.properties | 7 + .../maven/cn.mldn/microboot-task/pom.xml | 67 ++++ microboot-task/target/classes/application.yml | 3 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 833 bytes .../microboot/config/SchedulerConfig.class | Bin 0 -> 972 bytes .../cn/mldn/microboot/task/MyScheduler.class | Bin 0 -> 1537 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Dept.class | Bin 0 -> 1128 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + microboot-task/target/classes/logback.xml | 43 +++ .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + microboot-thymeleaf/.classpath | 36 ++ microboot-thymeleaf/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-thymeleaf/pom.xml | 52 +++ .../mldn/microboot/StartSpringBootMain.java | 10 + .../controller/MemberController.java | 66 ++++ .../controller/MessageController.java | 53 +++ .../controller/AbstractBaseController.java | 15 + .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/resources/application.yml | 5 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../main/view/templates/commons/footer.html | 5 + .../view/templates/member/member_list.html | 22 ++ .../view/templates/member/member_map.html | 26 ++ .../view/templates/member/member_set.html | 25 ++ .../view/templates/message/member_show.html | 20 ++ .../view/templates/message/message_show.html | 12 + .../templates/message/message_show_inner.html | 19 + .../templates/message/message_show_style.html | 20 ++ .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../microboot/test/TestMessageController.java | 19 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../microboot-thymeleaf/pom.properties | 7 + .../maven/cn.mldn/microboot-thymeleaf/pom.xml | 52 +++ .../target/classes/application.yml | 5 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 766 bytes .../controller/MemberController.class | Bin 0 -> 3243 bytes .../controller/MessageController.class | Bin 0 -> 3024 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../classes/templates/commons/footer.html | 5 + .../classes/templates/member/member_list.html | 22 ++ .../classes/templates/member/member_map.html | 26 ++ .../classes/templates/member/member_set.html | 25 ++ .../templates/message/member_show.html | 20 ++ .../templates/message/message_show.html | 12 + .../templates/message/message_show_inner.html | 19 + .../templates/message/message_show_style.html | 20 ++ .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../test/TestMessageController.class | Bin 0 -> 791 bytes microboot-tomcat/.classpath | 37 ++ microboot-tomcat/.project | 43 +++ microboot-tomcat/.settings/.jsdtscope | 12 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../org.eclipse.wst.common.component | 11 + ....eclipse.wst.common.project.facet.core.xml | 8 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 2 + microboot-tomcat/pom.xml | 65 ++++ .../mldn/microboot/StartSpringBootMain.java | 17 + .../advice/GlobalExceptionHandler.java | 50 +++ .../microboot/config/ErrorPageConfig.java | 29 ++ .../microboot/config/HttpConnectorConfig.java | 38 ++ .../controller/MemberController.java | 28 ++ .../controller/AbstractBaseController.java | 27 ++ .../java/cn/mldn/microboot/vo/Member.java | 41 +++ .../src/main/resources/application.yml | 7 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/resources/keystore.p12 | Bin 0 -> 2584 bytes .../src/main/view/static/error-400.html | 11 + .../src/main/view/static/error-404.html | 11 + .../src/main/view/static/error-500.html | 11 + .../src/main/view/static/images/dog.jpg | Bin 0 -> 185935 bytes .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/error.html | 12 + .../src/main/view/templates/member_add.html | 18 + .../view/templates/message/message_show.html | 12 + .../src/main/webapp/WEB-INF/web.xml | 30 ++ .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../microboot/test/TestMessageController.java | 19 + .../target/classes/application.yml | 7 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 1288 bytes .../GlobalExceptionHandler$1ErrorInfo.class | Bin 0 -> 1427 bytes .../advice/GlobalExceptionHandler.class | Bin 0 -> 1587 bytes .../microboot/config/ErrorPageConfig$1.class | Bin 0 -> 1761 bytes .../microboot/config/ErrorPageConfig.class | Bin 0 -> 784 bytes .../config/HttpConnectorConfig$1.class | Bin 0 -> 1631 bytes .../config/HttpConnectorConfig.class | Bin 0 -> 1629 bytes .../controller/MemberController.class | Bin 0 -> 1122 bytes .../controller/AbstractBaseController.class | Bin 0 -> 1601 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1701 bytes .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + microboot-tomcat/target/classes/keystore.p12 | Bin 0 -> 4659 bytes .../target/classes/static/error-400.html | 11 + .../target/classes/static/error-404.html | 11 + .../target/classes/static/error-500.html | 11 + .../target/classes/static/images/dog.jpg | Bin 0 -> 185935 bytes .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../target/classes/static/message_index.html | 10 + .../target/classes/templates/error.html | 12 + .../target/classes/templates/member_add.html | 18 + .../templates/message/message_show.html | 12 + .../web-resources/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-tomcat/pom.properties | 7 + .../maven/cn.mldn/microboot-tomcat/pom.xml | 65 ++++ .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../test/TestMessageController.class | Bin 0 -> 790 bytes microboot-upload/.classpath | 36 ++ microboot-upload/.project | 35 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ....eclipse.wst.common.project.facet.core.xml | 4 + microboot-upload/pom.xml | 58 +++ .../mldn/microboot/StartSpringBootMain.java | 11 + .../mldn/microboot/config/UploadConfig.java | 19 + .../controller/UploadController.java | 103 ++++++ .../controller/AbstractBaseController.java | 15 + .../java/cn/mldn/microboot/vo/Member.java | 44 +++ .../src/main/resources/application.yml | 12 + .../src/main/resources/fastdfs_client.conf | 6 + .../main/resources/i18n/Messages.properties | 2 + .../src/main/resources/i18n/Pages.properties | 2 + .../src/main/view/static/images/mldn.ico | Bin 0 -> 1406 bytes .../main/view/static/info/message_info.html | 11 + .../src/main/view/static/js/main.js | 3 + .../src/main/view/static/message_index.html | 10 + .../src/main/view/templates/upload_page.html | 21 ++ .../src/main/view/templates/upload_show.html | 12 + .../test/java/cn/mldn/microboot/AppTest.java | 38 ++ .../microboot/test/TestMessageController.java | 19 + .../target/classes/META-INF/MANIFEST.MF | 5 + .../cn.mldn/microboot-upload/pom.properties | 7 + .../maven/cn.mldn/microboot-upload/pom.xml | 58 +++ .../target/classes/application.yml | 12 + .../mldn/microboot/StartSpringBootMain.class | Bin 0 -> 766 bytes .../mldn/microboot/config/UploadConfig.class | Bin 0 -> 955 bytes .../controller/UploadController.class | Bin 0 -> 5383 bytes .../controller/AbstractBaseController.class | Bin 0 -> 932 bytes .../classes/cn/mldn/microboot/vo/Member.class | Bin 0 -> 1566 bytes .../target/classes/fastdfs_client.conf | 6 + .../target/classes/i18n/Messages.properties | 2 + .../target/classes/i18n/Pages.properties | 2 + .../target/classes/static/images/mldn.ico | Bin 0 -> 1406 bytes .../classes/static/info/message_info.html | 11 + .../target/classes/static/js/main.js | 3 + .../target/classes/static/message_index.html | 10 + .../target/classes/templates/upload_page.html | 21 ++ .../target/classes/templates/upload_show.html | 12 + .../cn/mldn/microboot/AppTest.class | Bin 0 -> 621 bytes .../test/TestMessageController.class | Bin 0 -> 790 bytes pom.xml | 135 +++++++ 1205 files changed, 17740 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 bin/pom.xml create mode 100644 microboot-activemq/.classpath create mode 100644 microboot-activemq/.project create mode 100644 microboot-activemq/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-activemq/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-activemq/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-activemq/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-activemq/pom.xml create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/config/ActiveMQConfig.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/config/DruidConfig.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/consumer/MessageConsumerService.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/controller/DeptController.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/dao/IDeptDAO.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/producer/IMessageProducerService.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/producer/impl/MessageProducerServiceImpl.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/service/IDeptService.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/service/impl/DeptServiceImpl.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-activemq/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-activemq/src/main/java/数据库创建脚本.sql create mode 100644 microboot-activemq/src/main/resources/application.yml create mode 100644 microboot-activemq/src/main/resources/i18n/Messages.properties create mode 100644 microboot-activemq/src/main/resources/i18n/Pages.properties create mode 100644 microboot-activemq/src/main/resources/logback.xml create mode 100644 microboot-activemq/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-activemq/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-activemq/src/main/view/static/images/mldn.ico create mode 100644 microboot-activemq/src/main/view/static/info/message_info.html create mode 100644 microboot-activemq/src/main/view/static/js/main.js create mode 100644 microboot-activemq/src/main/view/static/message_index.html create mode 100644 microboot-activemq/src/main/view/templates/upload_page.html create mode 100644 microboot-activemq/src/main/view/templates/upload_show.html create mode 100644 microboot-activemq/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-activemq/src/test/java/cn/mldn/microboot/test/TestActiveMQ.java create mode 100644 microboot-activemq/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.properties create mode 100644 microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.xml create mode 100644 microboot-activemq/target/classes/application.yml create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/config/ActiveMQConfig.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/config/DruidConfig.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/consumer/MessageConsumerService.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/controller/DeptController.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/dao/IDeptDAO.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/producer/IMessageProducerService.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/producer/impl/MessageProducerServiceImpl.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/service/IDeptService.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/service/impl/DeptServiceImpl.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-activemq/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-activemq/target/classes/i18n/Messages.properties create mode 100644 microboot-activemq/target/classes/i18n/Pages.properties create mode 100644 microboot-activemq/target/classes/logback.xml create mode 100644 microboot-activemq/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-activemq/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-activemq/target/classes/static/images/mldn.ico create mode 100644 microboot-activemq/target/classes/static/info/message_info.html create mode 100644 microboot-activemq/target/classes/static/js/main.js create mode 100644 microboot-activemq/target/classes/static/message_index.html create mode 100644 microboot-activemq/target/classes/templates/upload_page.html create mode 100644 microboot-activemq/target/classes/templates/upload_show.html create mode 100644 microboot-activemq/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-activemq/target/test-classes/cn/mldn/microboot/test/TestActiveMQ.class create mode 100644 microboot-actuator/.classpath create mode 100644 microboot-actuator/.project create mode 100644 microboot-actuator/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-actuator/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-actuator/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-actuator/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-actuator/pom.xml create mode 100644 microboot-actuator/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-actuator/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-actuator/src/main/resources/application.yml create mode 100644 microboot-actuator/src/main/resources/i18n/Messages.properties create mode 100644 microboot-actuator/src/main/resources/i18n/Pages.properties create mode 100644 microboot-actuator/src/main/resources/logback.xml create mode 100644 microboot-actuator/src/main/view/static/images/mldn.ico create mode 100644 microboot-actuator/src/main/view/static/info/message_info.html create mode 100644 microboot-actuator/src/main/view/static/js/main.js create mode 100644 microboot-actuator/src/main/view/static/message_index.html create mode 100644 microboot-actuator/src/main/view/templates/upload_page.html create mode 100644 microboot-actuator/src/main/view/templates/upload_show.html create mode 100644 microboot-actuator/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.properties create mode 100644 microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.xml create mode 100644 microboot-actuator/target/classes/application.yml create mode 100644 microboot-actuator/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-actuator/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-actuator/target/classes/i18n/Messages.properties create mode 100644 microboot-actuator/target/classes/i18n/Pages.properties create mode 100644 microboot-actuator/target/classes/logback.xml create mode 100644 microboot-actuator/target/classes/static/images/mldn.ico create mode 100644 microboot-actuator/target/classes/static/info/message_info.html create mode 100644 microboot-actuator/target/classes/static/js/main.js create mode 100644 microboot-actuator/target/classes/static/message_index.html create mode 100644 microboot-actuator/target/classes/templates/upload_page.html create mode 100644 microboot-actuator/target/classes/templates/upload_show.html create mode 100644 microboot-advance/.classpath create mode 100644 microboot-advance/.project create mode 100644 microboot-advance/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-advance/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-advance/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-advance/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-advance/.springBeans create mode 100644 microboot-advance/pom.xml create mode 100644 microboot-advance/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-advance/src/main/java/cn/mldn/microboot/controller/MessageController.java create mode 100644 microboot-advance/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-advance/src/main/resources/application-beta.properties create mode 100644 microboot-advance/src/main/resources/application-dev.properties create mode 100644 microboot-advance/src/main/resources/application-product.properties create mode 100644 microboot-advance/src/main/resources/application.properties create mode 100644 microboot-advance/src/main/resources/i18n/Messages.properties create mode 100644 microboot-advance/src/main/resources/i18n/Pages.properties create mode 100644 microboot-advance/src/main/view/static/images/mldn.ico create mode 100644 microboot-advance/src/main/view/static/message_index.html create mode 100644 microboot-advance/src/main/view/templates/message/message_show.html create mode 100644 microboot-advance/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-advance/src/test/java/cn/mldn/microboot/test/TestMessageController.java create mode 100644 microboot-advance/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.properties create mode 100644 microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.xml create mode 100644 microboot-advance/target/classes/application-beta.properties create mode 100644 microboot-advance/target/classes/application-dev.properties create mode 100644 microboot-advance/target/classes/application-product.properties create mode 100644 microboot-advance/target/classes/application.properties create mode 100644 microboot-advance/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-advance/target/classes/cn/mldn/microboot/controller/MessageController.class create mode 100644 microboot-advance/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-advance/target/classes/i18n/Messages.properties create mode 100644 microboot-advance/target/classes/i18n/Pages.properties create mode 100644 microboot-advance/target/classes/static/images/mldn.ico create mode 100644 microboot-advance/target/classes/static/message_index.html create mode 100644 microboot-advance/target/classes/templates/message/message_show.html create mode 100644 microboot-advance/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-advance/target/test-classes/cn/mldn/microboot/test/TestMessageController.class create mode 100644 microboot-base/.classpath create mode 100644 microboot-base/.project create mode 100644 microboot-base/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-base/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-base/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-base/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-base/.springBeans create mode 100644 microboot-base/pom.xml create mode 100644 microboot-base/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-base/src/main/java/cn/mldn/microboot/controller/HelloController.java create mode 100644 microboot-base/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-base/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.properties create mode 100644 microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.xml create mode 100644 microboot-base/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-base/target/classes/cn/mldn/microboot/controller/HelloController.class create mode 100644 microboot-base/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-email/.classpath create mode 100644 microboot-email/.project create mode 100644 microboot-email/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-email/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-email/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-email/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-email/pom.xml create mode 100644 microboot-email/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-email/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-email/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-email/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-email/src/main/java/数据库创建脚本.sql create mode 100644 microboot-email/src/main/resources/application.yml create mode 100644 microboot-email/src/main/resources/i18n/Messages.properties create mode 100644 microboot-email/src/main/resources/i18n/Pages.properties create mode 100644 microboot-email/src/main/resources/logback.xml create mode 100644 microboot-email/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-email/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-email/src/main/view/static/images/mldn.ico create mode 100644 microboot-email/src/main/view/static/info/message_info.html create mode 100644 microboot-email/src/main/view/static/js/main.js create mode 100644 microboot-email/src/main/view/static/message_index.html create mode 100644 microboot-email/src/main/view/templates/upload_page.html create mode 100644 microboot-email/src/main/view/templates/upload_show.html create mode 100644 microboot-email/src/test/java/cn/mldn/microboot/TestMail.java create mode 100644 microboot-email/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.properties create mode 100644 microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.xml create mode 100644 microboot-email/target/classes/application.yml create mode 100644 microboot-email/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-email/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-email/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-email/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-email/target/classes/i18n/Messages.properties create mode 100644 microboot-email/target/classes/i18n/Pages.properties create mode 100644 microboot-email/target/classes/logback.xml create mode 100644 microboot-email/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-email/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-email/target/classes/static/images/mldn.ico create mode 100644 microboot-email/target/classes/static/info/message_info.html create mode 100644 microboot-email/target/classes/static/js/main.js create mode 100644 microboot-email/target/classes/static/message_index.html create mode 100644 microboot-email/target/classes/templates/upload_page.html create mode 100644 microboot-email/target/classes/templates/upload_show.html create mode 100644 microboot-email/target/test-classes/cn/mldn/microboot/TestMail.class create mode 100644 microboot-error/.classpath create mode 100644 microboot-error/.project create mode 100644 microboot-error/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-error/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-error/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-error/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-error/pom.xml create mode 100644 microboot-error/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-error/src/main/java/cn/mldn/microboot/advice/GlobalExceptionHandler.java create mode 100644 microboot-error/src/main/java/cn/mldn/microboot/config/ErrorPageConfig.java create mode 100644 microboot-error/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-error/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-error/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-error/src/main/resources/application.yml create mode 100644 microboot-error/src/main/resources/i18n/Messages.properties create mode 100644 microboot-error/src/main/resources/i18n/Pages.properties create mode 100644 microboot-error/src/main/view/static/error-400.html create mode 100644 microboot-error/src/main/view/static/error-404.html create mode 100644 microboot-error/src/main/view/static/error-500.html create mode 100644 microboot-error/src/main/view/static/images/dog.jpg create mode 100644 microboot-error/src/main/view/static/images/mldn.ico create mode 100644 microboot-error/src/main/view/static/message_index.html create mode 100644 microboot-error/src/main/view/templates/error.html create mode 100644 microboot-error/src/main/view/templates/member_add.html create mode 100644 microboot-error/src/main/view/templates/message/message_show.html create mode 100644 microboot-error/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-error/src/test/java/cn/mldn/microboot/test/TestMessageController.java create mode 100644 microboot-error/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-error/target/classes/META-INF/maven/cn.mldn/microboot-error/pom.properties create mode 100644 microboot-error/target/classes/META-INF/maven/cn.mldn/microboot-error/pom.xml create mode 100644 microboot-error/target/classes/application.yml create mode 100644 microboot-error/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-error/target/classes/cn/mldn/microboot/advice/GlobalExceptionHandler$1ErrorInfo.class create mode 100644 microboot-error/target/classes/cn/mldn/microboot/advice/GlobalExceptionHandler.class create mode 100644 microboot-error/target/classes/cn/mldn/microboot/config/ErrorPageConfig.class create mode 100644 microboot-error/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-error/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-error/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-error/target/classes/i18n/Messages.properties create mode 100644 microboot-error/target/classes/i18n/Pages.properties create mode 100644 microboot-error/target/classes/static/error-400.html create mode 100644 microboot-error/target/classes/static/error-404.html create mode 100644 microboot-error/target/classes/static/error-500.html create mode 100644 microboot-error/target/classes/static/images/dog.jpg create mode 100644 microboot-error/target/classes/static/images/mldn.ico create mode 100644 microboot-error/target/classes/static/message_index.html create mode 100644 microboot-error/target/classes/templates/error.html create mode 100644 microboot-error/target/classes/templates/member_add.html create mode 100644 microboot-error/target/classes/templates/message/message_show.html create mode 100644 microboot-error/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-error/target/test-classes/cn/mldn/microboot/test/TestMessageController.class create mode 100644 microboot-interceptor/.classpath create mode 100644 microboot-interceptor/.project create mode 100644 microboot-interceptor/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-interceptor/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-interceptor/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-interceptor/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-interceptor/pom.xml create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/config/MyWebApplicationConfig.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/config/ServiceAspect.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/service/IMemberService.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/service/impl/MemberServiceImpl.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-interceptor/src/main/java/cn/mldn/util/MyInterceptor.java create mode 100644 microboot-interceptor/src/main/resources/application.yml create mode 100644 microboot-interceptor/src/main/resources/fastdfs_client.conf create mode 100644 microboot-interceptor/src/main/resources/i18n/Messages.properties create mode 100644 microboot-interceptor/src/main/resources/i18n/Pages.properties create mode 100644 microboot-interceptor/src/main/view/static/images/mldn.ico create mode 100644 microboot-interceptor/src/main/view/static/info/message_info.html create mode 100644 microboot-interceptor/src/main/view/static/js/main.js create mode 100644 microboot-interceptor/src/main/view/static/message_index.html create mode 100644 microboot-interceptor/src/main/view/templates/member_add.html create mode 100644 microboot-interceptor/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-interceptor/src/test/java/cn/mldn/microboot/test/TestMessageController.java create mode 100644 microboot-interceptor/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-interceptor/target/classes/META-INF/maven/cn.mldn/microboot-interceptor/pom.properties create mode 100644 microboot-interceptor/target/classes/META-INF/maven/cn.mldn/microboot-interceptor/pom.xml create mode 100644 microboot-interceptor/target/classes/application.yml create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/config/MyWebApplicationConfig.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/config/ServiceAspect.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/service/IMemberService.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/service/impl/MemberServiceImpl.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-interceptor/target/classes/cn/mldn/util/MyInterceptor.class create mode 100644 microboot-interceptor/target/classes/fastdfs_client.conf create mode 100644 microboot-interceptor/target/classes/i18n/Messages.properties create mode 100644 microboot-interceptor/target/classes/i18n/Pages.properties create mode 100644 microboot-interceptor/target/classes/static/images/mldn.ico create mode 100644 microboot-interceptor/target/classes/static/info/message_info.html create mode 100644 microboot-interceptor/target/classes/static/js/main.js create mode 100644 microboot-interceptor/target/classes/static/message_index.html create mode 100644 microboot-interceptor/target/classes/templates/member_add.html create mode 100644 microboot-interceptor/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-interceptor/target/test-classes/cn/mldn/microboot/test/TestMessageController.class create mode 100644 microboot-kafka-consumer/.classpath create mode 100644 microboot-kafka-consumer/.project create mode 100644 microboot-kafka-consumer/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-kafka-consumer/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-kafka-consumer/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-kafka-consumer/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-kafka-consumer/pom.xml create mode 100644 microboot-kafka-consumer/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-kafka-consumer/src/main/java/cn/mldn/microboot/consumer/MessageConsumerService.java create mode 100644 microboot-kafka-consumer/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-kafka-consumer/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-kafka-consumer/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-kafka-consumer/src/main/java/数据库创建脚本.sql create mode 100644 microboot-kafka-consumer/src/main/resources/application.yml create mode 100644 microboot-kafka-consumer/src/main/resources/i18n/Messages.properties create mode 100644 microboot-kafka-consumer/src/main/resources/i18n/Pages.properties create mode 100644 microboot-kafka-consumer/src/main/resources/logback.xml create mode 100644 microboot-kafka-consumer/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-kafka-consumer/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-kafka-consumer/src/main/view/static/images/mldn.ico create mode 100644 microboot-kafka-consumer/src/main/view/static/info/message_info.html create mode 100644 microboot-kafka-consumer/src/main/view/static/js/main.js create mode 100644 microboot-kafka-consumer/src/main/view/static/message_index.html create mode 100644 microboot-kafka-consumer/src/main/view/templates/upload_page.html create mode 100644 microboot-kafka-consumer/src/main/view/templates/upload_show.html create mode 100644 microboot-kafka-consumer/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-kafka-consumer/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-kafka-consumer/target/classes/META-INF/maven/cn.mldn/microboot-kafka-consumer/pom.properties create mode 100644 microboot-kafka-consumer/target/classes/META-INF/maven/cn.mldn/microboot-kafka-consumer/pom.xml create mode 100644 microboot-kafka-consumer/target/classes/application.yml create mode 100644 microboot-kafka-consumer/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-kafka-consumer/target/classes/cn/mldn/microboot/consumer/MessageConsumerService.class create mode 100644 microboot-kafka-consumer/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-kafka-consumer/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-kafka-consumer/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-kafka-consumer/target/classes/i18n/Messages.properties create mode 100644 microboot-kafka-consumer/target/classes/i18n/Pages.properties create mode 100644 microboot-kafka-consumer/target/classes/logback.xml create mode 100644 microboot-kafka-consumer/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-kafka-consumer/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-kafka-consumer/target/classes/static/images/mldn.ico create mode 100644 microboot-kafka-consumer/target/classes/static/info/message_info.html create mode 100644 microboot-kafka-consumer/target/classes/static/js/main.js create mode 100644 microboot-kafka-consumer/target/classes/static/message_index.html create mode 100644 microboot-kafka-consumer/target/classes/templates/upload_page.html create mode 100644 microboot-kafka-consumer/target/classes/templates/upload_show.html create mode 100644 microboot-kafka-consumer/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-kafka-producer/.classpath create mode 100644 microboot-kafka-producer/.project create mode 100644 microboot-kafka-producer/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-kafka-producer/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-kafka-producer/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-kafka-producer/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-kafka-producer/pom.xml create mode 100644 microboot-kafka-producer/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-kafka-producer/src/main/java/cn/mldn/microboot/service/IMessageProducerService.java create mode 100644 microboot-kafka-producer/src/main/java/cn/mldn/microboot/service/impl/MessageProducerServiceImpl.java create mode 100644 microboot-kafka-producer/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-kafka-producer/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-kafka-producer/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-kafka-producer/src/main/java/数据库创建脚本.sql create mode 100644 microboot-kafka-producer/src/main/resources/application.yml create mode 100644 microboot-kafka-producer/src/main/resources/i18n/Messages.properties create mode 100644 microboot-kafka-producer/src/main/resources/i18n/Pages.properties create mode 100644 microboot-kafka-producer/src/main/resources/logback.xml create mode 100644 microboot-kafka-producer/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-kafka-producer/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-kafka-producer/src/main/view/static/images/mldn.ico create mode 100644 microboot-kafka-producer/src/main/view/static/info/message_info.html create mode 100644 microboot-kafka-producer/src/main/view/static/js/main.js create mode 100644 microboot-kafka-producer/src/main/view/static/message_index.html create mode 100644 microboot-kafka-producer/src/main/view/templates/upload_page.html create mode 100644 microboot-kafka-producer/src/main/view/templates/upload_show.html create mode 100644 microboot-kafka-producer/src/test/java/cn/mldn/microboot/TestMessageService.java create mode 100644 microboot-kafka-producer/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-kafka-producer/target/classes/META-INF/maven/cn.mldn/microboot-kafka-producer/pom.properties create mode 100644 microboot-kafka-producer/target/classes/META-INF/maven/cn.mldn/microboot-kafka-producer/pom.xml create mode 100644 microboot-kafka-producer/target/classes/application.yml create mode 100644 microboot-kafka-producer/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-kafka-producer/target/classes/cn/mldn/microboot/service/IMessageProducerService.class create mode 100644 microboot-kafka-producer/target/classes/cn/mldn/microboot/service/impl/MessageProducerServiceImpl.class create mode 100644 microboot-kafka-producer/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-kafka-producer/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-kafka-producer/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-kafka-producer/target/classes/i18n/Messages.properties create mode 100644 microboot-kafka-producer/target/classes/i18n/Pages.properties create mode 100644 microboot-kafka-producer/target/classes/logback.xml create mode 100644 microboot-kafka-producer/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-kafka-producer/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-kafka-producer/target/classes/static/images/mldn.ico create mode 100644 microboot-kafka-producer/target/classes/static/info/message_info.html create mode 100644 microboot-kafka-producer/target/classes/static/js/main.js create mode 100644 microboot-kafka-producer/target/classes/static/message_index.html create mode 100644 microboot-kafka-producer/target/classes/templates/upload_page.html create mode 100644 microboot-kafka-producer/target/classes/templates/upload_show.html create mode 100644 microboot-kafka-producer/target/test-classes/cn/mldn/microboot/TestMessageService.class create mode 100644 microboot-mybatis/.classpath create mode 100644 microboot-mybatis/.project create mode 100644 microboot-mybatis/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-mybatis/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-mybatis/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-mybatis/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-mybatis/pom.xml create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/config/DruidConfig.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/controller/DeptController.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/dao/IDeptDAO.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/service/IDeptService.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/service/impl/DeptServiceImpl.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-mybatis/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-mybatis/src/main/java/数据库创建脚本.sql create mode 100644 microboot-mybatis/src/main/resources/application.yml create mode 100644 microboot-mybatis/src/main/resources/i18n/Messages.properties create mode 100644 microboot-mybatis/src/main/resources/i18n/Pages.properties create mode 100644 microboot-mybatis/src/main/resources/logback.xml create mode 100644 microboot-mybatis/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-mybatis/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-mybatis/src/main/view/static/images/mldn.ico create mode 100644 microboot-mybatis/src/main/view/static/info/message_info.html create mode 100644 microboot-mybatis/src/main/view/static/js/main.js create mode 100644 microboot-mybatis/src/main/view/static/message_index.html create mode 100644 microboot-mybatis/src/main/view/templates/upload_page.html create mode 100644 microboot-mybatis/src/main/view/templates/upload_show.html create mode 100644 microboot-mybatis/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-mybatis/src/test/java/cn/mldn/microboot/test/TestDataSource.java create mode 100644 microboot-mybatis/src/test/java/cn/mldn/microboot/test/TestDeptService.java create mode 100644 microboot-mybatis/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-mybatis/target/classes/META-INF/maven/cn.mldn/microboot-mybatis/pom.properties create mode 100644 microboot-mybatis/target/classes/META-INF/maven/cn.mldn/microboot-mybatis/pom.xml create mode 100644 microboot-mybatis/target/classes/application.yml create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/config/DruidConfig.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/controller/DeptController.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/dao/IDeptDAO.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/service/IDeptService.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/service/impl/DeptServiceImpl.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-mybatis/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-mybatis/target/classes/i18n/Messages.properties create mode 100644 microboot-mybatis/target/classes/i18n/Pages.properties create mode 100644 microboot-mybatis/target/classes/logback.xml create mode 100644 microboot-mybatis/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-mybatis/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-mybatis/target/classes/static/images/mldn.ico create mode 100644 microboot-mybatis/target/classes/static/info/message_info.html create mode 100644 microboot-mybatis/target/classes/static/js/main.js create mode 100644 microboot-mybatis/target/classes/static/message_index.html create mode 100644 microboot-mybatis/target/classes/templates/upload_page.html create mode 100644 microboot-mybatis/target/classes/templates/upload_show.html create mode 100644 microboot-mybatis/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-mybatis/target/test-classes/cn/mldn/microboot/test/TestDataSource.class create mode 100644 microboot-mybatis/target/test-classes/cn/mldn/microboot/test/TestDeptService.class create mode 100644 microboot-rabbitmq-consumer/.classpath create mode 100644 microboot-rabbitmq-consumer/.project create mode 100644 microboot-rabbitmq-consumer/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-rabbitmq-consumer/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-rabbitmq-consumer/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-rabbitmq-consumer/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-rabbitmq-consumer/pom.xml create mode 100644 microboot-rabbitmq-consumer/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-rabbitmq-consumer/src/main/java/cn/mldn/microboot/config/ConsumerConfig.java create mode 100644 microboot-rabbitmq-consumer/src/main/java/cn/mldn/microboot/consumer/MessageConsumerService.java create mode 100644 microboot-rabbitmq-consumer/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-rabbitmq-consumer/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-rabbitmq-consumer/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-rabbitmq-consumer/src/main/java/数据库创建脚本.sql create mode 100644 microboot-rabbitmq-consumer/src/main/resources/application.yml create mode 100644 microboot-rabbitmq-consumer/src/main/resources/i18n/Messages.properties create mode 100644 microboot-rabbitmq-consumer/src/main/resources/i18n/Pages.properties create mode 100644 microboot-rabbitmq-consumer/src/main/resources/logback.xml create mode 100644 microboot-rabbitmq-consumer/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-rabbitmq-consumer/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-rabbitmq-consumer/src/main/view/static/images/mldn.ico create mode 100644 microboot-rabbitmq-consumer/src/main/view/static/info/message_info.html create mode 100644 microboot-rabbitmq-consumer/src/main/view/static/js/main.js create mode 100644 microboot-rabbitmq-consumer/src/main/view/static/message_index.html create mode 100644 microboot-rabbitmq-consumer/src/main/view/templates/upload_page.html create mode 100644 microboot-rabbitmq-consumer/src/main/view/templates/upload_show.html create mode 100644 microboot-rabbitmq-consumer/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-rabbitmq-consumer/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-rabbitmq-consumer/target/classes/META-INF/maven/cn.mldn/microboot-rabbitmq-consumer/pom.properties create mode 100644 microboot-rabbitmq-consumer/target/classes/META-INF/maven/cn.mldn/microboot-rabbitmq-consumer/pom.xml create mode 100644 microboot-rabbitmq-consumer/target/classes/application.yml create mode 100644 microboot-rabbitmq-consumer/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-rabbitmq-consumer/target/classes/cn/mldn/microboot/config/ConsumerConfig.class create mode 100644 microboot-rabbitmq-consumer/target/classes/cn/mldn/microboot/consumer/MessageConsumerService.class create mode 100644 microboot-rabbitmq-consumer/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-rabbitmq-consumer/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-rabbitmq-consumer/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-rabbitmq-consumer/target/classes/i18n/Messages.properties create mode 100644 microboot-rabbitmq-consumer/target/classes/i18n/Pages.properties create mode 100644 microboot-rabbitmq-consumer/target/classes/logback.xml create mode 100644 microboot-rabbitmq-consumer/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-rabbitmq-consumer/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-rabbitmq-consumer/target/classes/static/images/mldn.ico create mode 100644 microboot-rabbitmq-consumer/target/classes/static/info/message_info.html create mode 100644 microboot-rabbitmq-consumer/target/classes/static/js/main.js create mode 100644 microboot-rabbitmq-consumer/target/classes/static/message_index.html create mode 100644 microboot-rabbitmq-consumer/target/classes/templates/upload_page.html create mode 100644 microboot-rabbitmq-consumer/target/classes/templates/upload_show.html create mode 100644 microboot-rabbitmq-consumer/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-rabbitmq-producer/.classpath create mode 100644 microboot-rabbitmq-producer/.project create mode 100644 microboot-rabbitmq-producer/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-rabbitmq-producer/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-rabbitmq-producer/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-rabbitmq-producer/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-rabbitmq-producer/pom.xml create mode 100644 microboot-rabbitmq-producer/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-rabbitmq-producer/src/main/java/cn/mldn/microboot/config/ProducerConfig.java create mode 100644 microboot-rabbitmq-producer/src/main/java/cn/mldn/microboot/producer/IMessageProducerService.java create mode 100644 microboot-rabbitmq-producer/src/main/java/cn/mldn/microboot/producer/impl/MessageProducerServiceImpl.java create mode 100644 microboot-rabbitmq-producer/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-rabbitmq-producer/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-rabbitmq-producer/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-rabbitmq-producer/src/main/java/数据库创建脚本.sql create mode 100644 microboot-rabbitmq-producer/src/main/resources/application.yml create mode 100644 microboot-rabbitmq-producer/src/main/resources/i18n/Messages.properties create mode 100644 microboot-rabbitmq-producer/src/main/resources/i18n/Pages.properties create mode 100644 microboot-rabbitmq-producer/src/main/resources/logback.xml create mode 100644 microboot-rabbitmq-producer/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-rabbitmq-producer/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-rabbitmq-producer/src/main/view/static/images/mldn.ico create mode 100644 microboot-rabbitmq-producer/src/main/view/static/info/message_info.html create mode 100644 microboot-rabbitmq-producer/src/main/view/static/js/main.js create mode 100644 microboot-rabbitmq-producer/src/main/view/static/message_index.html create mode 100644 microboot-rabbitmq-producer/src/main/view/templates/upload_page.html create mode 100644 microboot-rabbitmq-producer/src/main/view/templates/upload_show.html create mode 100644 microboot-rabbitmq-producer/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-rabbitmq-producer/src/test/java/cn/mldn/microboot/test/TestRabbitMQ.java create mode 100644 microboot-rabbitmq-producer/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-rabbitmq-producer/target/classes/META-INF/maven/cn.mldn/microboot-rabbitmq-producer/pom.properties create mode 100644 microboot-rabbitmq-producer/target/classes/META-INF/maven/cn.mldn/microboot-rabbitmq-producer/pom.xml create mode 100644 microboot-rabbitmq-producer/target/classes/application.yml create mode 100644 microboot-rabbitmq-producer/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-rabbitmq-producer/target/classes/cn/mldn/microboot/config/ProducerConfig.class create mode 100644 microboot-rabbitmq-producer/target/classes/cn/mldn/microboot/producer/IMessageProducerService.class create mode 100644 microboot-rabbitmq-producer/target/classes/cn/mldn/microboot/producer/impl/MessageProducerServiceImpl.class create mode 100644 microboot-rabbitmq-producer/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-rabbitmq-producer/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-rabbitmq-producer/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-rabbitmq-producer/target/classes/i18n/Messages.properties create mode 100644 microboot-rabbitmq-producer/target/classes/i18n/Pages.properties create mode 100644 microboot-rabbitmq-producer/target/classes/logback.xml create mode 100644 microboot-rabbitmq-producer/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-rabbitmq-producer/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-rabbitmq-producer/target/classes/static/images/mldn.ico create mode 100644 microboot-rabbitmq-producer/target/classes/static/info/message_info.html create mode 100644 microboot-rabbitmq-producer/target/classes/static/js/main.js create mode 100644 microboot-rabbitmq-producer/target/classes/static/message_index.html create mode 100644 microboot-rabbitmq-producer/target/classes/templates/upload_page.html create mode 100644 microboot-rabbitmq-producer/target/classes/templates/upload_show.html create mode 100644 microboot-rabbitmq-producer/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-rabbitmq-producer/target/test-classes/cn/mldn/microboot/test/TestRabbitMQ.class create mode 100644 microboot-redis/.classpath create mode 100644 microboot-redis/.project create mode 100644 microboot-redis/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-redis/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-redis/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-redis/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-redis/pom.xml create mode 100644 microboot-redis/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-redis/src/main/java/cn/mldn/microboot/config/RedisConfig.java create mode 100644 microboot-redis/src/main/java/cn/mldn/microboot/config/RedisTwoConfig.java create mode 100644 microboot-redis/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-redis/src/main/java/cn/mldn/microboot/util/redis/RedisObjectSerializer.java create mode 100644 microboot-redis/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-redis/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-redis/src/main/java/数据库创建脚本.sql create mode 100644 microboot-redis/src/main/resources/application.yml create mode 100644 microboot-redis/src/main/resources/i18n/Messages.properties create mode 100644 microboot-redis/src/main/resources/i18n/Pages.properties create mode 100644 microboot-redis/src/main/resources/logback.xml create mode 100644 microboot-redis/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-redis/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-redis/src/main/view/static/images/mldn.ico create mode 100644 microboot-redis/src/main/view/static/info/message_info.html create mode 100644 microboot-redis/src/main/view/static/js/main.js create mode 100644 microboot-redis/src/main/view/static/message_index.html create mode 100644 microboot-redis/src/main/view/templates/upload_page.html create mode 100644 microboot-redis/src/main/view/templates/upload_show.html create mode 100644 microboot-redis/src/test/java/cn/mldn/microboot/TestRedis.java create mode 100644 microboot-redis/src/test/java/cn/mldn/microboot/TestRedisTwo.java create mode 100644 microboot-redis/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-redis/target/classes/META-INF/maven/cn.mldn/microboot-redis/pom.properties create mode 100644 microboot-redis/target/classes/META-INF/maven/cn.mldn/microboot-redis/pom.xml create mode 100644 microboot-redis/target/classes/application.yml create mode 100644 microboot-redis/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-redis/target/classes/cn/mldn/microboot/config/RedisConfig.class create mode 100644 microboot-redis/target/classes/cn/mldn/microboot/config/RedisTwoConfig.class create mode 100644 microboot-redis/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-redis/target/classes/cn/mldn/microboot/util/redis/RedisObjectSerializer.class create mode 100644 microboot-redis/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-redis/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-redis/target/classes/i18n/Messages.properties create mode 100644 microboot-redis/target/classes/i18n/Pages.properties create mode 100644 microboot-redis/target/classes/logback.xml create mode 100644 microboot-redis/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-redis/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-redis/target/classes/static/images/mldn.ico create mode 100644 microboot-redis/target/classes/static/info/message_info.html create mode 100644 microboot-redis/target/classes/static/js/main.js create mode 100644 microboot-redis/target/classes/static/message_index.html create mode 100644 microboot-redis/target/classes/templates/upload_page.html create mode 100644 microboot-redis/target/classes/templates/upload_show.html create mode 100644 microboot-redis/target/test-classes/cn/mldn/microboot/TestRedis.class create mode 100644 microboot-redis/target/test-classes/cn/mldn/microboot/TestRedisTwo.class create mode 100644 microboot-restful-api/.classpath create mode 100644 microboot-restful-api/.project create mode 100644 microboot-restful-api/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-restful-api/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-restful-api/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-restful-api/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-restful-api/pom.xml create mode 100644 microboot-restful-api/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-restful-api/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-restful-api/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-restful-api/src/main/java/数据库创建脚本.sql create mode 100644 microboot-restful-api/src/main/resources/application.yml create mode 100644 microboot-restful-api/src/main/resources/i18n/Messages.properties create mode 100644 microboot-restful-api/src/main/resources/i18n/Pages.properties create mode 100644 microboot-restful-api/src/main/resources/logback.xml create mode 100644 microboot-restful-api/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-api/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-api/src/main/view/static/images/mldn.ico create mode 100644 microboot-restful-api/src/main/view/static/info/message_info.html create mode 100644 microboot-restful-api/src/main/view/static/js/main.js create mode 100644 microboot-restful-api/src/main/view/static/message_index.html create mode 100644 microboot-restful-api/src/main/view/templates/upload_page.html create mode 100644 microboot-restful-api/src/main/view/templates/upload_show.html create mode 100644 microboot-restful-api/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-restful-api/target/classes/META-INF/maven/cn.mldn/microboot-restful-api/pom.properties create mode 100644 microboot-restful-api/target/classes/META-INF/maven/cn.mldn/microboot-restful-api/pom.xml create mode 100644 microboot-restful-api/target/classes/application.yml create mode 100644 microboot-restful-api/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-restful-api/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-restful-api/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-restful-api/target/classes/i18n/Messages.properties create mode 100644 microboot-restful-api/target/classes/i18n/Pages.properties create mode 100644 microboot-restful-api/target/classes/logback.xml create mode 100644 microboot-restful-api/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-api/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-api/target/classes/static/images/mldn.ico create mode 100644 microboot-restful-api/target/classes/static/info/message_info.html create mode 100644 microboot-restful-api/target/classes/static/js/main.js create mode 100644 microboot-restful-api/target/classes/static/message_index.html create mode 100644 microboot-restful-api/target/classes/templates/upload_page.html create mode 100644 microboot-restful-api/target/classes/templates/upload_show.html create mode 100644 microboot-restful-consumer/.classpath create mode 100644 microboot-restful-consumer/.project create mode 100644 microboot-restful-consumer/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-restful-consumer/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-restful-consumer/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-restful-consumer/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-restful-consumer/pom.xml create mode 100644 microboot-restful-consumer/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-restful-consumer/src/main/java/cn/mldn/microboot/config/RestConfig.java create mode 100644 microboot-restful-consumer/src/main/java/cn/mldn/microboot/controller/MemberConsumerController.java create mode 100644 microboot-restful-consumer/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-restful-consumer/src/main/java/cn/mldn/microboot/vo/LogInfo.java create mode 100644 microboot-restful-consumer/src/main/java/数据库创建脚本.sql create mode 100644 microboot-restful-consumer/src/main/resources/application.yml create mode 100644 microboot-restful-consumer/src/main/resources/i18n/Messages.properties create mode 100644 microboot-restful-consumer/src/main/resources/i18n/Pages.properties create mode 100644 microboot-restful-consumer/src/main/resources/logback.xml create mode 100644 microboot-restful-consumer/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-consumer/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-consumer/src/main/view/static/images/mldn.ico create mode 100644 microboot-restful-consumer/src/main/view/static/info/message_info.html create mode 100644 microboot-restful-consumer/src/main/view/static/js/main.js create mode 100644 microboot-restful-consumer/src/main/view/static/message_index.html create mode 100644 microboot-restful-consumer/src/main/view/templates/member_show.html create mode 100644 microboot-restful-consumer/src/main/view/templates/upload_show.html create mode 100644 microboot-restful-consumer/src/test/java/cn/mldn/microboot/TestLogger.java create mode 100644 microboot-restful-consumer/src/test/java/cn/mldn/microboot/TestMemberRestful.java create mode 100644 microboot-restful-consumer/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-restful-consumer/target/classes/META-INF/maven/cn.mldn/microboot-restful-consumer/pom.properties create mode 100644 microboot-restful-consumer/target/classes/META-INF/maven/cn.mldn/microboot-restful-consumer/pom.xml create mode 100644 microboot-restful-consumer/target/classes/application.yml create mode 100644 microboot-restful-consumer/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-restful-consumer/target/classes/cn/mldn/microboot/config/RestConfig.class create mode 100644 microboot-restful-consumer/target/classes/cn/mldn/microboot/controller/MemberConsumerController.class create mode 100644 microboot-restful-consumer/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-restful-consumer/target/classes/cn/mldn/microboot/vo/LogInfo.class create mode 100644 microboot-restful-consumer/target/classes/i18n/Messages.properties create mode 100644 microboot-restful-consumer/target/classes/i18n/Pages.properties create mode 100644 microboot-restful-consumer/target/classes/logback.xml create mode 100644 microboot-restful-consumer/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-consumer/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-consumer/target/classes/static/images/mldn.ico create mode 100644 microboot-restful-consumer/target/classes/static/info/message_info.html create mode 100644 microboot-restful-consumer/target/classes/static/js/main.js create mode 100644 microboot-restful-consumer/target/classes/static/message_index.html create mode 100644 microboot-restful-consumer/target/classes/templates/member_show.html create mode 100644 microboot-restful-consumer/target/classes/templates/upload_show.html create mode 100644 microboot-restful-consumer/target/test-classes/cn/mldn/microboot/TestLogger.class create mode 100644 microboot-restful-consumer/target/test-classes/cn/mldn/microboot/TestMemberRestful.class create mode 100644 microboot-restful-log/.classpath create mode 100644 microboot-restful-log/.project create mode 100644 microboot-restful-log/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-restful-log/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-restful-log/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-restful-log/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-restful-log/pom.xml create mode 100644 microboot-restful-log/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-restful-log/src/main/java/cn/mldn/microboot/controller/MessageController.java create mode 100644 microboot-restful-log/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-restful-log/src/main/java/数据库创建脚本.sql create mode 100644 microboot-restful-log/src/main/resources/application.yml create mode 100644 microboot-restful-log/src/main/resources/i18n/Messages.properties create mode 100644 microboot-restful-log/src/main/resources/i18n/Pages.properties create mode 100644 microboot-restful-log/src/main/resources/logback.xml create mode 100644 microboot-restful-log/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-log/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-log/src/main/view/static/images/mldn.ico create mode 100644 microboot-restful-log/src/main/view/static/info/message_info.html create mode 100644 microboot-restful-log/src/main/view/static/js/main.js create mode 100644 microboot-restful-log/src/main/view/static/message_index.html create mode 100644 microboot-restful-log/src/main/view/templates/upload_page.html create mode 100644 microboot-restful-log/src/main/view/templates/upload_show.html create mode 100644 microboot-restful-log/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-restful-log/target/classes/META-INF/maven/cn.mldn/microboot-restful-log/pom.properties create mode 100644 microboot-restful-log/target/classes/META-INF/maven/cn.mldn/microboot-restful-log/pom.xml create mode 100644 microboot-restful-log/target/classes/application.yml create mode 100644 microboot-restful-log/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-restful-log/target/classes/cn/mldn/microboot/controller/MessageController.class create mode 100644 microboot-restful-log/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-restful-log/target/classes/i18n/Messages.properties create mode 100644 microboot-restful-log/target/classes/i18n/Pages.properties create mode 100644 microboot-restful-log/target/classes/logback.xml create mode 100644 microboot-restful-log/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-log/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-log/target/classes/static/images/mldn.ico create mode 100644 microboot-restful-log/target/classes/static/info/message_info.html create mode 100644 microboot-restful-log/target/classes/static/js/main.js create mode 100644 microboot-restful-log/target/classes/static/message_index.html create mode 100644 microboot-restful-log/target/classes/templates/upload_page.html create mode 100644 microboot-restful-log/target/classes/templates/upload_show.html create mode 100644 microboot-restful-provider/.classpath create mode 100644 microboot-restful-provider/.project create mode 100644 microboot-restful-provider/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-restful-provider/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-restful-provider/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-restful-provider/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-restful-provider/pom.xml create mode 100644 microboot-restful-provider/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-restful-provider/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-restful-provider/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-restful-provider/src/main/java/数据库创建脚本.sql create mode 100644 microboot-restful-provider/src/main/resources/application.yml create mode 100644 microboot-restful-provider/src/main/resources/i18n/Messages.properties create mode 100644 microboot-restful-provider/src/main/resources/i18n/Pages.properties create mode 100644 microboot-restful-provider/src/main/resources/logback.xml create mode 100644 microboot-restful-provider/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-provider/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-provider/src/main/view/static/images/mldn.ico create mode 100644 microboot-restful-provider/src/main/view/static/info/message_info.html create mode 100644 microboot-restful-provider/src/main/view/static/js/main.js create mode 100644 microboot-restful-provider/src/main/view/static/message_index.html create mode 100644 microboot-restful-provider/src/main/view/templates/upload_page.html create mode 100644 microboot-restful-provider/src/main/view/templates/upload_show.html create mode 100644 microboot-restful-provider/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-restful-provider/target/classes/META-INF/maven/cn.mldn/microboot-restful-provider/pom.properties create mode 100644 microboot-restful-provider/target/classes/META-INF/maven/cn.mldn/microboot-restful-provider/pom.xml create mode 100644 microboot-restful-provider/target/classes/application.yml create mode 100644 microboot-restful-provider/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-restful-provider/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-restful-provider/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-restful-provider/target/classes/i18n/Messages.properties create mode 100644 microboot-restful-provider/target/classes/i18n/Pages.properties create mode 100644 microboot-restful-provider/target/classes/logback.xml create mode 100644 microboot-restful-provider/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-provider/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-provider/target/classes/static/images/mldn.ico create mode 100644 microboot-restful-provider/target/classes/static/info/message_info.html create mode 100644 microboot-restful-provider/target/classes/static/js/main.js create mode 100644 microboot-restful-provider/target/classes/static/message_index.html create mode 100644 microboot-restful-provider/target/classes/templates/upload_page.html create mode 100644 microboot-restful-provider/target/classes/templates/upload_show.html create mode 100644 microboot-restful-swagger/.classpath create mode 100644 microboot-restful-swagger/.project create mode 100644 microboot-restful-swagger/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-restful-swagger/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-restful-swagger/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-restful-swagger/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-restful-swagger/pom.xml create mode 100644 microboot-restful-swagger/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-restful-swagger/src/main/java/cn/mldn/microboot/config/Swagger2Config.java create mode 100644 microboot-restful-swagger/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-restful-swagger/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-restful-swagger/src/main/java/数据库创建脚本.sql create mode 100644 microboot-restful-swagger/src/main/resources/application.yml create mode 100644 microboot-restful-swagger/src/main/resources/i18n/Messages.properties create mode 100644 microboot-restful-swagger/src/main/resources/i18n/Pages.properties create mode 100644 microboot-restful-swagger/src/main/resources/logback.xml create mode 100644 microboot-restful-swagger/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-swagger/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-swagger/src/main/view/static/images/mldn.ico create mode 100644 microboot-restful-swagger/src/main/view/static/info/message_info.html create mode 100644 microboot-restful-swagger/src/main/view/static/js/main.js create mode 100644 microboot-restful-swagger/src/main/view/static/message_index.html create mode 100644 microboot-restful-swagger/src/main/view/templates/upload_page.html create mode 100644 microboot-restful-swagger/src/main/view/templates/upload_show.html create mode 100644 microboot-restful-swagger/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-restful-swagger/target/classes/META-INF/maven/cn.mldn/microboot-restful-swagger/pom.properties create mode 100644 microboot-restful-swagger/target/classes/META-INF/maven/cn.mldn/microboot-restful-swagger/pom.xml create mode 100644 microboot-restful-swagger/target/classes/application.yml create mode 100644 microboot-restful-swagger/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-restful-swagger/target/classes/cn/mldn/microboot/config/Swagger2Config.class create mode 100644 microboot-restful-swagger/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-restful-swagger/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-restful-swagger/target/classes/i18n/Messages.properties create mode 100644 microboot-restful-swagger/target/classes/i18n/Pages.properties create mode 100644 microboot-restful-swagger/target/classes/logback.xml create mode 100644 microboot-restful-swagger/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-restful-swagger/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-restful-swagger/target/classes/static/images/mldn.ico create mode 100644 microboot-restful-swagger/target/classes/static/info/message_info.html create mode 100644 microboot-restful-swagger/target/classes/static/js/main.js create mode 100644 microboot-restful-swagger/target/classes/static/message_index.html create mode 100644 microboot-restful-swagger/target/classes/templates/upload_page.html create mode 100644 microboot-restful-swagger/target/classes/templates/upload_show.html create mode 100644 microboot-shiro-api/.classpath create mode 100644 microboot-shiro-api/.project create mode 100644 microboot-shiro-api/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-shiro-api/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-shiro-api/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-shiro-api/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-shiro-api/.springBeans create mode 100644 microboot-shiro-api/pom.xml create mode 100644 microboot-shiro-api/src/main/java/cn/mldn/util/enctype/MD5Code.java create mode 100644 microboot-shiro-api/src/main/java/cn/mldn/util/enctype/PasswordUtil.java create mode 100644 microboot-shiro-api/src/main/java/cn/mldn/vo/Member.java create mode 100644 microboot-shiro-api/src/main/resources/application.yml create mode 100644 microboot-shiro-api/src/main/resources/i18n/Messages.properties create mode 100644 microboot-shiro-api/src/main/resources/i18n/Pages.properties create mode 100644 microboot-shiro-api/src/main/resources/logback.xml create mode 100644 microboot-shiro-api/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-shiro-api/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-shiro-api/src/main/view/static/images/mldn.ico create mode 100644 microboot-shiro-api/src/main/view/static/info/message_info.html create mode 100644 microboot-shiro-api/src/main/view/static/js/main.js create mode 100644 microboot-shiro-api/src/main/view/static/message_index.html create mode 100644 microboot-shiro-api/src/main/view/templates/upload_page.html create mode 100644 microboot-shiro-api/src/main/view/templates/upload_show.html create mode 100644 microboot-shiro-api/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-shiro-api/target/classes/META-INF/maven/cn.mldn/microboot-shiro-api/pom.properties create mode 100644 microboot-shiro-api/target/classes/META-INF/maven/cn.mldn/microboot-shiro-api/pom.xml create mode 100644 microboot-shiro-api/target/classes/application.yml create mode 100644 microboot-shiro-api/target/classes/cn/mldn/util/enctype/MD5Code.class create mode 100644 microboot-shiro-api/target/classes/cn/mldn/util/enctype/PasswordUtil.class create mode 100644 microboot-shiro-api/target/classes/cn/mldn/vo/Member.class create mode 100644 microboot-shiro-api/target/classes/i18n/Messages.properties create mode 100644 microboot-shiro-api/target/classes/i18n/Pages.properties create mode 100644 microboot-shiro-api/target/classes/logback.xml create mode 100644 microboot-shiro-api/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-shiro-api/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-shiro-api/target/classes/static/images/mldn.ico create mode 100644 microboot-shiro-api/target/classes/static/info/message_info.html create mode 100644 microboot-shiro-api/target/classes/static/js/main.js create mode 100644 microboot-shiro-api/target/classes/static/message_index.html create mode 100644 microboot-shiro-api/target/classes/templates/upload_page.html create mode 100644 microboot-shiro-api/target/classes/templates/upload_show.html create mode 100644 microboot-shiro-member-provider/.classpath create mode 100644 microboot-shiro-member-provider/.project create mode 100644 microboot-shiro-member-provider/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-shiro-member-provider/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-shiro-member-provider/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-shiro-member-provider/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-shiro-member-provider/.springBeans create mode 100644 microboot-shiro-member-provider/pom.xml create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/MemberServiceProviderStartSpringBootMain.java create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/dao/IActionDAO.java create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/dao/IMemberDAO.java create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/dao/IRoleDAO.java create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/service/IMemberService.java create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/service/impl/MemberServiceImpl.java create mode 100644 microboot-shiro-member-provider/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-shiro-member-provider/src/main/java/数据库创建脚本.sql create mode 100644 microboot-shiro-member-provider/src/main/resources/application.yml create mode 100644 microboot-shiro-member-provider/src/main/resources/i18n/Messages.properties create mode 100644 microboot-shiro-member-provider/src/main/resources/i18n/Pages.properties create mode 100644 microboot-shiro-member-provider/src/main/resources/logback.xml create mode 100644 microboot-shiro-member-provider/src/main/resources/mybatis/mapper/cn/mldn/Action.xml create mode 100644 microboot-shiro-member-provider/src/main/resources/mybatis/mapper/cn/mldn/Member.xml create mode 100644 microboot-shiro-member-provider/src/main/resources/mybatis/mapper/cn/mldn/Role.xml create mode 100644 microboot-shiro-member-provider/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-shiro-member-provider/src/main/view/static/images/mldn.ico create mode 100644 microboot-shiro-member-provider/src/main/view/static/info/message_info.html create mode 100644 microboot-shiro-member-provider/src/main/view/static/js/main.js create mode 100644 microboot-shiro-member-provider/src/main/view/static/message_index.html create mode 100644 microboot-shiro-member-provider/src/main/view/templates/upload_page.html create mode 100644 microboot-shiro-member-provider/src/main/view/templates/upload_show.html create mode 100644 microboot-shiro-member-provider/src/test/java/cn/mldn/microboot/TestMemberController.java create mode 100644 microboot-shiro-member-provider/src/test/java/cn/mldn/microboot/TestMemberService.java create mode 100644 microboot-shiro-member-provider/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-shiro-member-provider/target/classes/META-INF/maven/cn.mldn/microboot-shiro-member-provider/pom.properties create mode 100644 microboot-shiro-member-provider/target/classes/META-INF/maven/cn.mldn/microboot-shiro-member-provider/pom.xml create mode 100644 microboot-shiro-member-provider/target/classes/application.yml create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/MemberServiceProviderStartSpringBootMain.class create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/dao/IActionDAO.class create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/dao/IMemberDAO.class create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/dao/IRoleDAO.class create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/service/IMemberService.class create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/service/impl/MemberServiceImpl.class create mode 100644 microboot-shiro-member-provider/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-shiro-member-provider/target/classes/i18n/Messages.properties create mode 100644 microboot-shiro-member-provider/target/classes/i18n/Pages.properties create mode 100644 microboot-shiro-member-provider/target/classes/logback.xml create mode 100644 microboot-shiro-member-provider/target/classes/mybatis/mapper/cn/mldn/Action.xml create mode 100644 microboot-shiro-member-provider/target/classes/mybatis/mapper/cn/mldn/Member.xml create mode 100644 microboot-shiro-member-provider/target/classes/mybatis/mapper/cn/mldn/Role.xml create mode 100644 microboot-shiro-member-provider/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-shiro-member-provider/target/classes/static/images/mldn.ico create mode 100644 microboot-shiro-member-provider/target/classes/static/info/message_info.html create mode 100644 microboot-shiro-member-provider/target/classes/static/js/main.js create mode 100644 microboot-shiro-member-provider/target/classes/static/message_index.html create mode 100644 microboot-shiro-member-provider/target/classes/templates/upload_page.html create mode 100644 microboot-shiro-member-provider/target/classes/templates/upload_show.html create mode 100644 microboot-shiro-member-provider/target/test-classes/cn/mldn/microboot/TestMemberController.class create mode 100644 microboot-shiro-member-provider/target/test-classes/cn/mldn/microboot/TestMemberService.class create mode 100644 microboot-shiro-web/.classpath create mode 100644 microboot-shiro-web/.project create mode 100644 microboot-shiro-web/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-shiro-web/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-shiro-web/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-shiro-web/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-shiro-web/.springBeans create mode 100644 microboot-shiro-web/pom.xml create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/ShiroWEBStartSpringBootMain.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/cache/RedisCache.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/cache/RedisCacheManager.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/config/RedisConfig.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/config/RestConfig.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/config/ShiroConfig.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/controller/DeptController.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/realm/CustomerCredentialsMatcher.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/realm/MemberRealm.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/session/RedisSessionDAO.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/util/RedisObjectSerializer.java create mode 100644 microboot-shiro-web/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-shiro-web/src/main/java/数据库创建脚本.sql create mode 100644 microboot-shiro-web/src/main/resources/application.yml create mode 100644 microboot-shiro-web/src/main/resources/ehcache.xml create mode 100644 microboot-shiro-web/src/main/resources/i18n/Messages.properties create mode 100644 microboot-shiro-web/src/main/resources/i18n/Pages.properties create mode 100644 microboot-shiro-web/src/main/resources/logback.xml create mode 100644 microboot-shiro-web/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-shiro-web/src/main/resources/mybatis/mybatis.cfg.xml create mode 100644 microboot-shiro-web/src/main/view/static/images/mldn.ico create mode 100644 microboot-shiro-web/src/main/view/static/info/message_info.html create mode 100644 microboot-shiro-web/src/main/view/static/js/main.js create mode 100644 microboot-shiro-web/src/main/view/static/message_index.html create mode 100644 microboot-shiro-web/src/main/view/templates/dept_show.html create mode 100644 microboot-shiro-web/src/main/view/templates/member_login.html create mode 100644 microboot-shiro-web/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-shiro-web/target/classes/META-INF/maven/cn.mldn/microboot-shiro-web/pom.properties create mode 100644 microboot-shiro-web/target/classes/META-INF/maven/cn.mldn/microboot-shiro-web/pom.xml create mode 100644 microboot-shiro-web/target/classes/application.yml create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/ShiroWEBStartSpringBootMain.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/cache/RedisCache$1.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/cache/RedisCache$2.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/cache/RedisCache$3.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/cache/RedisCache$4.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/cache/RedisCache.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/cache/RedisCacheManager.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/config/RedisConfig.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/config/RestConfig.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/config/ShiroConfig.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/controller/DeptController.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/realm/CustomerCredentialsMatcher.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/realm/MemberRealm.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/session/RedisSessionDAO.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/util/RedisObjectSerializer.class create mode 100644 microboot-shiro-web/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-shiro-web/target/classes/ehcache.xml create mode 100644 microboot-shiro-web/target/classes/i18n/Messages.properties create mode 100644 microboot-shiro-web/target/classes/i18n/Pages.properties create mode 100644 microboot-shiro-web/target/classes/logback.xml create mode 100644 microboot-shiro-web/target/classes/mybatis/mapper/cn/mldn/Dept.xml create mode 100644 microboot-shiro-web/target/classes/mybatis/mybatis.cfg.xml create mode 100644 microboot-shiro-web/target/classes/static/images/mldn.ico create mode 100644 microboot-shiro-web/target/classes/static/info/message_info.html create mode 100644 microboot-shiro-web/target/classes/static/js/main.js create mode 100644 microboot-shiro-web/target/classes/static/message_index.html create mode 100644 microboot-shiro-web/target/classes/templates/dept_show.html create mode 100644 microboot-shiro-web/target/classes/templates/member_login.html create mode 100644 microboot-task/.classpath create mode 100644 microboot-task/.project create mode 100644 microboot-task/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-task/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-task/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-task/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-task/pom.xml create mode 100644 microboot-task/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-task/src/main/java/cn/mldn/microboot/config/SchedulerConfig.java create mode 100644 microboot-task/src/main/java/cn/mldn/microboot/task/MyScheduler.java create mode 100644 microboot-task/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-task/src/main/java/cn/mldn/microboot/vo/Dept.java create mode 100644 microboot-task/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-task/src/main/java/数据库创建脚本.sql create mode 100644 microboot-task/src/main/resources/application.yml create mode 100644 microboot-task/src/main/resources/i18n/Messages.properties create mode 100644 microboot-task/src/main/resources/i18n/Pages.properties create mode 100644 microboot-task/src/main/resources/logback.xml create mode 100644 microboot-task/src/main/view/static/images/mldn.ico create mode 100644 microboot-task/src/main/view/static/info/message_info.html create mode 100644 microboot-task/src/main/view/static/js/main.js create mode 100644 microboot-task/src/main/view/static/message_index.html create mode 100644 microboot-task/src/main/view/templates/upload_page.html create mode 100644 microboot-task/src/main/view/templates/upload_show.html create mode 100644 microboot-task/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-task/target/classes/META-INF/maven/cn.mldn/microboot-task/pom.properties create mode 100644 microboot-task/target/classes/META-INF/maven/cn.mldn/microboot-task/pom.xml create mode 100644 microboot-task/target/classes/application.yml create mode 100644 microboot-task/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-task/target/classes/cn/mldn/microboot/config/SchedulerConfig.class create mode 100644 microboot-task/target/classes/cn/mldn/microboot/task/MyScheduler.class create mode 100644 microboot-task/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-task/target/classes/cn/mldn/microboot/vo/Dept.class create mode 100644 microboot-task/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-task/target/classes/i18n/Messages.properties create mode 100644 microboot-task/target/classes/i18n/Pages.properties create mode 100644 microboot-task/target/classes/logback.xml create mode 100644 microboot-task/target/classes/static/images/mldn.ico create mode 100644 microboot-task/target/classes/static/info/message_info.html create mode 100644 microboot-task/target/classes/static/js/main.js create mode 100644 microboot-task/target/classes/static/message_index.html create mode 100644 microboot-task/target/classes/templates/upload_page.html create mode 100644 microboot-task/target/classes/templates/upload_show.html create mode 100644 microboot-thymeleaf/.classpath create mode 100644 microboot-thymeleaf/.project create mode 100644 microboot-thymeleaf/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-thymeleaf/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-thymeleaf/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-thymeleaf/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-thymeleaf/pom.xml create mode 100644 microboot-thymeleaf/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-thymeleaf/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-thymeleaf/src/main/java/cn/mldn/microboot/controller/MessageController.java create mode 100644 microboot-thymeleaf/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-thymeleaf/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-thymeleaf/src/main/resources/application.yml create mode 100644 microboot-thymeleaf/src/main/resources/i18n/Messages.properties create mode 100644 microboot-thymeleaf/src/main/resources/i18n/Pages.properties create mode 100644 microboot-thymeleaf/src/main/view/static/images/mldn.ico create mode 100644 microboot-thymeleaf/src/main/view/static/info/message_info.html create mode 100644 microboot-thymeleaf/src/main/view/static/js/main.js create mode 100644 microboot-thymeleaf/src/main/view/static/message_index.html create mode 100644 microboot-thymeleaf/src/main/view/templates/commons/footer.html create mode 100644 microboot-thymeleaf/src/main/view/templates/member/member_list.html create mode 100644 microboot-thymeleaf/src/main/view/templates/member/member_map.html create mode 100644 microboot-thymeleaf/src/main/view/templates/member/member_set.html create mode 100644 microboot-thymeleaf/src/main/view/templates/message/member_show.html create mode 100644 microboot-thymeleaf/src/main/view/templates/message/message_show.html create mode 100644 microboot-thymeleaf/src/main/view/templates/message/message_show_inner.html create mode 100644 microboot-thymeleaf/src/main/view/templates/message/message_show_style.html create mode 100644 microboot-thymeleaf/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-thymeleaf/src/test/java/cn/mldn/microboot/test/TestMessageController.java create mode 100644 microboot-thymeleaf/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-thymeleaf/target/classes/META-INF/maven/cn.mldn/microboot-thymeleaf/pom.properties create mode 100644 microboot-thymeleaf/target/classes/META-INF/maven/cn.mldn/microboot-thymeleaf/pom.xml create mode 100644 microboot-thymeleaf/target/classes/application.yml create mode 100644 microboot-thymeleaf/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-thymeleaf/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-thymeleaf/target/classes/cn/mldn/microboot/controller/MessageController.class create mode 100644 microboot-thymeleaf/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-thymeleaf/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-thymeleaf/target/classes/i18n/Messages.properties create mode 100644 microboot-thymeleaf/target/classes/i18n/Pages.properties create mode 100644 microboot-thymeleaf/target/classes/static/images/mldn.ico create mode 100644 microboot-thymeleaf/target/classes/static/info/message_info.html create mode 100644 microboot-thymeleaf/target/classes/static/js/main.js create mode 100644 microboot-thymeleaf/target/classes/static/message_index.html create mode 100644 microboot-thymeleaf/target/classes/templates/commons/footer.html create mode 100644 microboot-thymeleaf/target/classes/templates/member/member_list.html create mode 100644 microboot-thymeleaf/target/classes/templates/member/member_map.html create mode 100644 microboot-thymeleaf/target/classes/templates/member/member_set.html create mode 100644 microboot-thymeleaf/target/classes/templates/message/member_show.html create mode 100644 microboot-thymeleaf/target/classes/templates/message/message_show.html create mode 100644 microboot-thymeleaf/target/classes/templates/message/message_show_inner.html create mode 100644 microboot-thymeleaf/target/classes/templates/message/message_show_style.html create mode 100644 microboot-thymeleaf/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-thymeleaf/target/test-classes/cn/mldn/microboot/test/TestMessageController.class create mode 100644 microboot-tomcat/.classpath create mode 100644 microboot-tomcat/.project create mode 100644 microboot-tomcat/.settings/.jsdtscope create mode 100644 microboot-tomcat/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-tomcat/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-tomcat/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-tomcat/.settings/org.eclipse.wst.common.component create mode 100644 microboot-tomcat/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-tomcat/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 microboot-tomcat/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 microboot-tomcat/.settings/org.eclipse.wst.validation.prefs create mode 100644 microboot-tomcat/pom.xml create mode 100644 microboot-tomcat/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-tomcat/src/main/java/cn/mldn/microboot/advice/GlobalExceptionHandler.java create mode 100644 microboot-tomcat/src/main/java/cn/mldn/microboot/config/ErrorPageConfig.java create mode 100644 microboot-tomcat/src/main/java/cn/mldn/microboot/config/HttpConnectorConfig.java create mode 100644 microboot-tomcat/src/main/java/cn/mldn/microboot/controller/MemberController.java create mode 100644 microboot-tomcat/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-tomcat/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-tomcat/src/main/resources/application.yml create mode 100644 microboot-tomcat/src/main/resources/i18n/Messages.properties create mode 100644 microboot-tomcat/src/main/resources/i18n/Pages.properties create mode 100644 microboot-tomcat/src/main/resources/keystore.p12 create mode 100644 microboot-tomcat/src/main/view/static/error-400.html create mode 100644 microboot-tomcat/src/main/view/static/error-404.html create mode 100644 microboot-tomcat/src/main/view/static/error-500.html create mode 100644 microboot-tomcat/src/main/view/static/images/dog.jpg create mode 100644 microboot-tomcat/src/main/view/static/images/mldn.ico create mode 100644 microboot-tomcat/src/main/view/static/message_index.html create mode 100644 microboot-tomcat/src/main/view/templates/error.html create mode 100644 microboot-tomcat/src/main/view/templates/member_add.html create mode 100644 microboot-tomcat/src/main/view/templates/message/message_show.html create mode 100644 microboot-tomcat/src/main/webapp/WEB-INF/web.xml create mode 100644 microboot-tomcat/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-tomcat/src/test/java/cn/mldn/microboot/test/TestMessageController.java create mode 100644 microboot-tomcat/target/classes/application.yml create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/advice/GlobalExceptionHandler$1ErrorInfo.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/advice/GlobalExceptionHandler.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/config/ErrorPageConfig$1.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/config/ErrorPageConfig.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/config/HttpConnectorConfig$1.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/config/HttpConnectorConfig.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/controller/MemberController.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-tomcat/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-tomcat/target/classes/i18n/Messages.properties create mode 100644 microboot-tomcat/target/classes/i18n/Pages.properties create mode 100644 microboot-tomcat/target/classes/keystore.p12 create mode 100644 microboot-tomcat/target/classes/static/error-400.html create mode 100644 microboot-tomcat/target/classes/static/error-404.html create mode 100644 microboot-tomcat/target/classes/static/error-500.html create mode 100644 microboot-tomcat/target/classes/static/images/dog.jpg create mode 100644 microboot-tomcat/target/classes/static/images/mldn.ico create mode 100644 microboot-tomcat/target/classes/static/message_index.html create mode 100644 microboot-tomcat/target/classes/templates/error.html create mode 100644 microboot-tomcat/target/classes/templates/member_add.html create mode 100644 microboot-tomcat/target/classes/templates/message/message_show.html create mode 100644 microboot-tomcat/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF create mode 100644 microboot-tomcat/target/m2e-wtp/web-resources/META-INF/maven/cn.mldn/microboot-tomcat/pom.properties create mode 100644 microboot-tomcat/target/m2e-wtp/web-resources/META-INF/maven/cn.mldn/microboot-tomcat/pom.xml create mode 100644 microboot-tomcat/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-tomcat/target/test-classes/cn/mldn/microboot/test/TestMessageController.class create mode 100644 microboot-upload/.classpath create mode 100644 microboot-upload/.project create mode 100644 microboot-upload/.settings/org.eclipse.core.resources.prefs create mode 100644 microboot-upload/.settings/org.eclipse.jdt.core.prefs create mode 100644 microboot-upload/.settings/org.eclipse.m2e.core.prefs create mode 100644 microboot-upload/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 microboot-upload/pom.xml create mode 100644 microboot-upload/src/main/java/cn/mldn/microboot/StartSpringBootMain.java create mode 100644 microboot-upload/src/main/java/cn/mldn/microboot/config/UploadConfig.java create mode 100644 microboot-upload/src/main/java/cn/mldn/microboot/controller/UploadController.java create mode 100644 microboot-upload/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java create mode 100644 microboot-upload/src/main/java/cn/mldn/microboot/vo/Member.java create mode 100644 microboot-upload/src/main/resources/application.yml create mode 100644 microboot-upload/src/main/resources/fastdfs_client.conf create mode 100644 microboot-upload/src/main/resources/i18n/Messages.properties create mode 100644 microboot-upload/src/main/resources/i18n/Pages.properties create mode 100644 microboot-upload/src/main/view/static/images/mldn.ico create mode 100644 microboot-upload/src/main/view/static/info/message_info.html create mode 100644 microboot-upload/src/main/view/static/js/main.js create mode 100644 microboot-upload/src/main/view/static/message_index.html create mode 100644 microboot-upload/src/main/view/templates/upload_page.html create mode 100644 microboot-upload/src/main/view/templates/upload_show.html create mode 100644 microboot-upload/src/test/java/cn/mldn/microboot/AppTest.java create mode 100644 microboot-upload/src/test/java/cn/mldn/microboot/test/TestMessageController.java create mode 100644 microboot-upload/target/classes/META-INF/MANIFEST.MF create mode 100644 microboot-upload/target/classes/META-INF/maven/cn.mldn/microboot-upload/pom.properties create mode 100644 microboot-upload/target/classes/META-INF/maven/cn.mldn/microboot-upload/pom.xml create mode 100644 microboot-upload/target/classes/application.yml create mode 100644 microboot-upload/target/classes/cn/mldn/microboot/StartSpringBootMain.class create mode 100644 microboot-upload/target/classes/cn/mldn/microboot/config/UploadConfig.class create mode 100644 microboot-upload/target/classes/cn/mldn/microboot/controller/UploadController.class create mode 100644 microboot-upload/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class create mode 100644 microboot-upload/target/classes/cn/mldn/microboot/vo/Member.class create mode 100644 microboot-upload/target/classes/fastdfs_client.conf create mode 100644 microboot-upload/target/classes/i18n/Messages.properties create mode 100644 microboot-upload/target/classes/i18n/Pages.properties create mode 100644 microboot-upload/target/classes/static/images/mldn.ico create mode 100644 microboot-upload/target/classes/static/info/message_info.html create mode 100644 microboot-upload/target/classes/static/js/main.js create mode 100644 microboot-upload/target/classes/static/message_index.html create mode 100644 microboot-upload/target/classes/templates/upload_page.html create mode 100644 microboot-upload/target/classes/templates/upload_show.html create mode 100644 microboot-upload/target/test-classes/cn/mldn/microboot/AppTest.class create mode 100644 microboot-upload/target/test-classes/cn/mldn/microboot/test/TestMessageController.class create mode 100644 pom.xml diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..64db939 --- /dev/null +++ b/.classpath @@ -0,0 +1,4 @@ + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..27ebeb8 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + microboot + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..4824b80 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/bin/pom.xml b/bin/pom.xml new file mode 100644 index 0000000..25574ba --- /dev/null +++ b/bin/pom.xml @@ -0,0 +1,26 @@ + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + pom + + microboot + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + + diff --git a/microboot-activemq/.classpath b/microboot-activemq/.classpath new file mode 100644 index 0000000..a6f04e8 --- /dev/null +++ b/microboot-activemq/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/microboot-activemq/.project b/microboot-activemq/.project new file mode 100644 index 0000000..26045bb --- /dev/null +++ b/microboot-activemq/.project @@ -0,0 +1,35 @@ + + + microboot-activemq + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/microboot-activemq/.settings/org.eclipse.core.resources.prefs b/microboot-activemq/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..a6dcfb7 --- /dev/null +++ b/microboot-activemq/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/main/view=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/microboot-activemq/.settings/org.eclipse.jdt.core.prefs b/microboot-activemq/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/microboot-activemq/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/microboot-activemq/.settings/org.eclipse.m2e.core.prefs b/microboot-activemq/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/microboot-activemq/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/microboot-activemq/.settings/org.eclipse.wst.common.project.facet.core.xml b/microboot-activemq/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..e822977 --- /dev/null +++ b/microboot-activemq/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/microboot-activemq/pom.xml b/microboot-activemq/pom.xml new file mode 100644 index 0000000..971fc0e --- /dev/null +++ b/microboot-activemq/pom.xml @@ -0,0 +1,72 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-activemq + microboot-activemq + http://maven.apache.org + + UTF-8 + + + + mysql + mysql-connector-java + + + com.alibaba + druid + + + ch.qos.logback + logback-core + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + org.springframework.boot + spring-boot-starter-activemq + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/StartSpringBootMain.java b/microboot-activemq/src/main/java/cn/mldn/microboot/StartSpringBootMain.java new file mode 100644 index 0000000..beb472b --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/StartSpringBootMain.java @@ -0,0 +1,13 @@ +package cn.mldn.microboot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描 +@EnableTransactionManagement +public class StartSpringBootMain { + public static void main(String[] args) throws Exception { + SpringApplication.run(StartSpringBootMain.class, args); + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/config/ActiveMQConfig.java b/microboot-activemq/src/main/java/cn/mldn/microboot/config/ActiveMQConfig.java new file mode 100644 index 0000000..b110224 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/config/ActiveMQConfig.java @@ -0,0 +1,17 @@ +package cn.mldn.microboot.config; + +import javax.jms.Queue; + +import org.apache.activemq.command.ActiveMQQueue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jms.annotation.EnableJms; + +@Configuration +@EnableJms +public class ActiveMQConfig { + @Bean + public Queue queue() { + return new ActiveMQQueue("mldn.msg.queue") ; + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/config/DruidConfig.java b/microboot-activemq/src/main/java/cn/mldn/microboot/config/DruidConfig.java new file mode 100644 index 0000000..1512a62 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/config/DruidConfig.java @@ -0,0 +1,42 @@ +package cn.mldn.microboot.config; + +import javax.sql.DataSource; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.support.http.StatViewServlet; +import com.alibaba.druid.support.http.WebStatFilter; + +@Configuration +public class DruidConfig { + @Bean + public ServletRegistrationBean druidServlet() { // 主要实现WEB监控的配置处理 + ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean( + new StatViewServlet(), "/druid/*"); // 现在要进行druid监控的配置处理操作 + servletRegistrationBean.addInitParameter("allow", + "127.0.0.1,192.168.28.159"); // 白名单 + servletRegistrationBean.addInitParameter("deny", "192.168.28.200"); // 黑名单 + servletRegistrationBean.addInitParameter("loginUsername", "mldnjava"); // 用户名 + servletRegistrationBean.addInitParameter("loginPassword", "hello"); // 密码 + servletRegistrationBean.addInitParameter("resetEnable", "false"); // 是否可以重置数据源 + return servletRegistrationBean ; + } + @Bean + public FilterRegistrationBean filterRegistrationBean() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ; + filterRegistrationBean.setFilter(new WebStatFilter()); + filterRegistrationBean.addUrlPatterns("/*"); // 所有请求进行监控处理 + filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*"); + return filterRegistrationBean ; + } + @Bean + @ConfigurationProperties(prefix = "spring.datasource") + public DataSource druidDataSource() { + return new DruidDataSource(); + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/consumer/MessageConsumerService.java b/microboot-activemq/src/main/java/cn/mldn/microboot/consumer/MessageConsumerService.java new file mode 100644 index 0000000..5a39316 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/consumer/MessageConsumerService.java @@ -0,0 +1,12 @@ +package cn.mldn.microboot.consumer; + +import org.springframework.jms.annotation.JmsListener; +import org.springframework.stereotype.Service; + +@Service +public class MessageConsumerService { + @JmsListener(destination="mldn.msg.queue") + public void receiveMessage(String text) { // 进行消息接收处理 + System.err.println("【*** 接收消息 ***】" + text); + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/controller/DeptController.java b/microboot-activemq/src/main/java/cn/mldn/microboot/controller/DeptController.java new file mode 100644 index 0000000..452782e --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/controller/DeptController.java @@ -0,0 +1,20 @@ +package cn.mldn.microboot.controller; + +import javax.annotation.Resource; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import cn.mldn.microboot.service.IDeptService; +import cn.mldn.microboot.util.controller.AbstractBaseController; + +@RestController +public class DeptController extends AbstractBaseController { + @Resource + private IDeptService deptService ; + @RequestMapping(value = "/list", method = RequestMethod.GET) + public Object list() { // 通过model可以实现内容的传递 + return this.deptService.list() ; + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/dao/IDeptDAO.java b/microboot-activemq/src/main/java/cn/mldn/microboot/dao/IDeptDAO.java new file mode 100644 index 0000000..758693b --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/dao/IDeptDAO.java @@ -0,0 +1,12 @@ +package cn.mldn.microboot.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; + +import cn.mldn.microboot.vo.Dept; +@Mapper +public interface IDeptDAO { + public List findAll(); + public boolean doCreate(Dept vo) ; +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/producer/IMessageProducerService.java b/microboot-activemq/src/main/java/cn/mldn/microboot/producer/IMessageProducerService.java new file mode 100644 index 0000000..5621950 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/producer/IMessageProducerService.java @@ -0,0 +1,5 @@ +package cn.mldn.microboot.producer; + +public interface IMessageProducerService { + public void sendMessage(String msg) ; +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/producer/impl/MessageProducerServiceImpl.java b/microboot-activemq/src/main/java/cn/mldn/microboot/producer/impl/MessageProducerServiceImpl.java new file mode 100644 index 0000000..eb758be --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/producer/impl/MessageProducerServiceImpl.java @@ -0,0 +1,21 @@ +package cn.mldn.microboot.producer.impl; + +import javax.annotation.Resource; +import javax.jms.Queue; + +import org.springframework.jms.core.JmsMessagingTemplate; +import org.springframework.stereotype.Service; + +import cn.mldn.microboot.producer.IMessageProducerService; +@Service +public class MessageProducerServiceImpl implements IMessageProducerService { + @Resource + private JmsMessagingTemplate jmsMessagingTemplate; + @Resource + private Queue queue; + @Override + public void sendMessage(String msg) { + this.jmsMessagingTemplate.convertAndSend(this.queue, msg); + } + +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/service/IDeptService.java b/microboot-activemq/src/main/java/cn/mldn/microboot/service/IDeptService.java new file mode 100644 index 0000000..2f10d1e --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/service/IDeptService.java @@ -0,0 +1,15 @@ +package cn.mldn.microboot.service; + +import java.util.List; + +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import cn.mldn.microboot.vo.Dept; + +public interface IDeptService { + @Transactional(readOnly = true) + public List list() ; + @Transactional(propagation=Propagation.REQUIRED) + public boolean add(Dept vo) ; +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/service/impl/DeptServiceImpl.java b/microboot-activemq/src/main/java/cn/mldn/microboot/service/impl/DeptServiceImpl.java new file mode 100644 index 0000000..ba710b7 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/service/impl/DeptServiceImpl.java @@ -0,0 +1,25 @@ +package cn.mldn.microboot.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cn.mldn.microboot.dao.IDeptDAO; +import cn.mldn.microboot.service.IDeptService; +import cn.mldn.microboot.vo.Dept; +import cn.mldn.microboot.vo.Member; +@Service +public class DeptServiceImpl implements IDeptService { + @Resource + private IDeptDAO deptDAO; + @Override + public List list() { + return this.deptDAO.findAll(); + } + @Override + public boolean add(Dept vo) { + return this.deptDAO.doCreate(vo); + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java b/microboot-activemq/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java new file mode 100644 index 0000000..5127e93 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java @@ -0,0 +1,15 @@ +package cn.mldn.microboot.util.controller; + +import java.util.Locale; + +import javax.annotation.Resource; + +import org.springframework.context.MessageSource; + +public abstract class AbstractBaseController { + @Resource + private MessageSource messageSource; // 自动注入此资源对象 + public String getMessage(String key, String... args) { + return this.messageSource.getMessage(key, args, Locale.getDefault()); + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/vo/Dept.java b/microboot-activemq/src/main/java/cn/mldn/microboot/vo/Dept.java new file mode 100644 index 0000000..7971469 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/vo/Dept.java @@ -0,0 +1,25 @@ +package cn.mldn.microboot.vo; + +import java.io.Serializable; + +@SuppressWarnings("serial") +public class Dept implements Serializable { + private Long deptno ; + private String dname ; + public Long getDeptno() { + return deptno; + } + public void setDeptno(Long deptno) { + this.deptno = deptno; + } + public String getDname() { + return dname; + } + public void setDname(String dname) { + this.dname = dname; + } + @Override + public String toString() { + return "Dept [deptno=" + deptno + ", dname=" + dname + "]"; + } +} diff --git a/microboot-activemq/src/main/java/cn/mldn/microboot/vo/Member.java b/microboot-activemq/src/main/java/cn/mldn/microboot/vo/Member.java new file mode 100644 index 0000000..f6a9cd8 --- /dev/null +++ b/microboot-activemq/src/main/java/cn/mldn/microboot/vo/Member.java @@ -0,0 +1,44 @@ +package cn.mldn.microboot.vo; + +import java.io.Serializable; +import java.util.Date; + +@SuppressWarnings("serial") +public class Member implements Serializable { + private Long mid ; + private String name ; + private Integer age ; + private Date birthday ; + private Double salary ; + public Long getMid() { + return mid; + } + public void setMid(Long mid) { + this.mid = mid; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public Integer getAge() { + return age; + } + public void setAge(Integer age) { + this.age = age; + } + public Date getBirthday() { + return birthday; + } + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + public Double getSalary() { + return salary; + } + public void setSalary(Double salary) { + this.salary = salary; + } +} + diff --git a/microboot-activemq/src/main/java/数据库创建脚本.sql b/microboot-activemq/src/main/java/数据库创建脚本.sql new file mode 100644 index 0000000..edd35b2 --- /dev/null +++ b/microboot-activemq/src/main/java/数据库创建脚本.sql @@ -0,0 +1,13 @@ +DROP DATBASE IF EXISTS mldn ; +CREATE DATBASE mldn CHARACTER SET UTF8 ; +USE mldn ; +CREATE TABLE dept ( + deptno BIGINT AUTO_INCREMENT , + dname VARCHAR(50) , + CONSTRAINT pk_deptno PRIMARY KEY(deptno) +) ; +INSERT INTO dept(dname) VALUES ('开发部') ; +INSERT INTO dept(dname) VALUES ('财务部') ; +INSERT INTO dept(dname) VALUES ('市场部') ; +INSERT INTO dept(dname) VALUES ('后勤部') ; +INSERT INTO dept(dname) VALUES ('公关部') ; \ No newline at end of file diff --git a/microboot-activemq/src/main/resources/application.yml b/microboot-activemq/src/main/resources/application.yml new file mode 100644 index 0000000..e6b73c2 --- /dev/null +++ b/microboot-activemq/src/main/resources/application.yml @@ -0,0 +1,11 @@ +server: + port: 80 +spring: + messages: + basename: i18n/Messages,i18n/Pages + jms: + pub-sub-domain: false # 配置消息的类型,如果是true则表示为topic消息,如果为false表示Queue消息 + activemq: + user: mldnjava # 连接用户名 + password: hello # 连接密码 + broker-url: tcp://activemq-server:61616 # 消息组件的连接主机信息 \ No newline at end of file diff --git a/microboot-activemq/src/main/resources/i18n/Messages.properties b/microboot-activemq/src/main/resources/i18n/Messages.properties new file mode 100644 index 0000000..83d9229 --- /dev/null +++ b/microboot-activemq/src/main/resources/i18n/Messages.properties @@ -0,0 +1,2 @@ +welcome.url=www.mldn.cn +welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01 \ No newline at end of file diff --git a/microboot-activemq/src/main/resources/i18n/Pages.properties b/microboot-activemq/src/main/resources/i18n/Pages.properties new file mode 100644 index 0000000..7acc581 --- /dev/null +++ b/microboot-activemq/src/main/resources/i18n/Pages.properties @@ -0,0 +1,2 @@ +member.add.page=/pages/back/admin/member/member_add.jsp +member.add.action=/pages/back/admin/member/member_add.action \ No newline at end of file diff --git a/microboot-activemq/src/main/resources/logback.xml b/microboot-activemq/src/main/resources/logback.xml new file mode 100644 index 0000000..1f01e35 --- /dev/null +++ b/microboot-activemq/src/main/resources/logback.xml @@ -0,0 +1,43 @@ + + + + + + + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + + ${LOG_HOME}/${APP}_detail.log + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + ${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd} + + + + ${LOG_HOME}/${APP}_access.log + + %d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n + + + ${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microboot-activemq/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml b/microboot-activemq/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml new file mode 100644 index 0000000..6557a3a --- /dev/null +++ b/microboot-activemq/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml @@ -0,0 +1,11 @@ + + + + + + INSERT INTO dept(dname) VALUES (#{dname}) ; + + diff --git a/microboot-activemq/src/main/resources/mybatis/mybatis.cfg.xml b/microboot-activemq/src/main/resources/mybatis/mybatis.cfg.xml new file mode 100644 index 0000000..4d128c0 --- /dev/null +++ b/microboot-activemq/src/main/resources/mybatis/mybatis.cfg.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/microboot-activemq/src/main/view/static/images/mldn.ico b/microboot-activemq/src/main/view/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-activemq/src/main/view/static/info/message_info.html b/microboot-activemq/src/main/view/static/info/message_info.html new file mode 100644 index 0000000..1b66139 --- /dev/null +++ b/microboot-activemq/src/main/view/static/info/message_info.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-activemq/src/main/view/static/js/main.js b/microboot-activemq/src/main/view/static/js/main.js new file mode 100644 index 0000000..c8ae7c9 --- /dev/null +++ b/microboot-activemq/src/main/view/static/js/main.js @@ -0,0 +1,3 @@ +window.onload = function() { + console.log("****** www.mldn.cn ******") ; +} \ No newline at end of file diff --git a/microboot-activemq/src/main/view/static/message_index.html b/microboot-activemq/src/main/view/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-activemq/src/main/view/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-activemq/src/main/view/templates/upload_page.html b/microboot-activemq/src/main/view/templates/upload_page.html new file mode 100644 index 0000000..5f71423 --- /dev/null +++ b/microboot-activemq/src/main/view/templates/upload_page.html @@ -0,0 +1,21 @@ + + + + SpringBoot模版渲染 + + + + + +
+ 姓名:
+ 照片:
+ 照片:
+ 照片:
+ +
+ 查看照片 + 查看照片 + 查看照片 + + \ No newline at end of file diff --git a/microboot-activemq/src/main/view/templates/upload_show.html b/microboot-activemq/src/main/view/templates/upload_show.html new file mode 100644 index 0000000..0e86d94 --- /dev/null +++ b/microboot-activemq/src/main/view/templates/upload_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + + + + + \ No newline at end of file diff --git a/microboot-activemq/src/test/java/cn/mldn/microboot/AppTest.java b/microboot-activemq/src/test/java/cn/mldn/microboot/AppTest.java new file mode 100644 index 0000000..a094258 --- /dev/null +++ b/microboot-activemq/src/test/java/cn/mldn/microboot/AppTest.java @@ -0,0 +1,38 @@ +package cn.mldn.microboot; + +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/microboot-activemq/src/test/java/cn/mldn/microboot/test/TestActiveMQ.java b/microboot-activemq/src/test/java/cn/mldn/microboot/test/TestActiveMQ.java new file mode 100644 index 0000000..a8c14b1 --- /dev/null +++ b/microboot-activemq/src/test/java/cn/mldn/microboot/test/TestActiveMQ.java @@ -0,0 +1,26 @@ +package cn.mldn.microboot.test; + +import javax.annotation.Resource; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; + +import cn.mldn.microboot.StartSpringBootMain; +import cn.mldn.microboot.producer.IMessageProducerService; + +@SpringBootTest(classes = StartSpringBootMain.class) +@RunWith(SpringJUnit4ClassRunner.class) +@WebAppConfiguration +public class TestActiveMQ { + @Resource + private IMessageProducerService messageProducer; + @Test + public void testSend() throws Exception { + for (int x = 0; x < 100; x++) { + this.messageProducer.sendMessage("mldn - " + x); + } + } +} diff --git a/microboot-activemq/target/classes/META-INF/MANIFEST.MF b/microboot-activemq/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d4c16dd --- /dev/null +++ b/microboot-activemq/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: foreveriss +Build-Jdk: 1.8.0_121 +Created-By: Maven Integration for Eclipse + diff --git a/microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.properties b/microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.properties new file mode 100644 index 0000000..f1dab2d --- /dev/null +++ b/microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Thu Jun 29 23:44:57 CST 2017 +version=0.0.1-SNAPSHOT +groupId=cn.mldn +m2e.projectName=microboot-activemq +m2e.projectLocation=/Users/foreveriss/workspace/microboot/microboot-activemq +artifactId=microboot-activemq diff --git a/microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.xml b/microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.xml new file mode 100644 index 0000000..971fc0e --- /dev/null +++ b/microboot-activemq/target/classes/META-INF/maven/cn.mldn/microboot-activemq/pom.xml @@ -0,0 +1,72 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-activemq + microboot-activemq + http://maven.apache.org + + UTF-8 + + + + mysql + mysql-connector-java + + + com.alibaba + druid + + + ch.qos.logback + logback-core + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + org.springframework.boot + spring-boot-starter-activemq + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-activemq/target/classes/application.yml b/microboot-activemq/target/classes/application.yml new file mode 100644 index 0000000..e6b73c2 --- /dev/null +++ b/microboot-activemq/target/classes/application.yml @@ -0,0 +1,11 @@ +server: + port: 80 +spring: + messages: + basename: i18n/Messages,i18n/Pages + jms: + pub-sub-domain: false # 配置消息的类型,如果是true则表示为topic消息,如果为false表示Queue消息 + activemq: + user: mldnjava # 连接用户名 + password: hello # 连接密码 + broker-url: tcp://activemq-server:61616 # 消息组件的连接主机信息 \ No newline at end of file diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/StartSpringBootMain.class b/microboot-activemq/target/classes/cn/mldn/microboot/StartSpringBootMain.class new file mode 100644 index 0000000000000000000000000000000000000000..e777efe513e8d74580c55d421409f051f261b059 GIT binary patch literal 845 zcma)4O>Yx15PeS5Zn^|o5-2U-94bN%_=30uRf4LB!xkih!hw_Hx{KRgJMwy=e~S}{ z13!Qtg%~@io5LQs%-A#boA;jm`_Io`0G{Dtf)2yJG`uWMC}`>I+*;44UN}EpIBoJ* zv_BTwB`A8|@Dm)<#ce4BbO}qEf73vyXLbFl=SosJC@F zSMGzD7m8t!St*K{a60V&6}$ekt{5I?|3zj(gGwUBurvCUHKe9KP@V)L>CuH$3$LxI z5)2rI&8f>yiW}HTaFbzdUCyg0_|%C~eYNhKFRh5hmy1QAr3i3++`=x&bv2Ebqm}7P zOD1iEvNn8ajaL_*A6j#&^V$VFRt8Zyw1ZaRax!Pwf=oiEwsumz*1_A|mX~`Plr!wT zuZ`EGn(0c1LB?1g1rhQ=E5E2;)ZP-&NKon?S!N0{dk7U&Jw_y>j`8>EyvAe@BmH)uWV;WpJfxD(@D+@l=M-lzNk_zP`V)?5(2c)Lr+bRh%XVBAfyt(0WGcCqDUN_jk|S-?Z)dZ{VX_D zq7om#M;REpF?FEjf*)ViD(XHJ>?#0f3GS@$)J?d65%;-;0qlfn$@XpyjRL!621 zRB{oG(Q~??wJ?(#r{dcyXfvz_OMAM=dr@S9CY}aEo-wpLQSG&h$3AEn1m}`tTe?hs zP{E_t|K|6?dtl>e7v4PM-LgWM*M6$8ydPF%8^@%?8C0A&EX+FNhlkbEo_{Y|` W#g;7CD%gx&TahoJ{^x{W0Dl3F|F=H? literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/config/DruidConfig.class b/microboot-activemq/target/classes/cn/mldn/microboot/config/DruidConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..788d114b4acca7d1d894cf7c2849665323649ba0 GIT binary patch literal 2124 zcmbtVZByGu5Pr_QSU650f*44eLPAQ6O?22z2w+GEFKN@diHn0%noqKQHb;fzN^+oo zroW;60yFirKcGLV(>+PN#+lOTXy#VB-P?V3_qo+yfB*g`fJb;2M~vZq&F1@7ofcVh zovP#byyn;q+2k8;Th`Zu_c(ePhW5<&Cbvwx$zNCZM9pXDUzWD?pEC5MXDST6>rP!H z(1U>_`q0lXSd_MS)!wfP_l;S#1cP35YNk~&U8%mK&0c?3dJNOWt6(WGBaD|+xF$Y zs7Ox|uIIMx_<^2aJ?!e7isXw!pPQ$qJn$9AFvIfyffL6~2BYTebJLPlvug4nUGBA8 zEywlwuJ5;anc!8VIEYe8U<3nkj9utb*;n<@aEn2Ud}I>P@u}+09ZD=+R4qNcT%W?b zU_Wei=%g@H(J;Z#XIhqXpy4jVST6s>n4>2*n_J8qx%mYnzhLAZFRBnzN!-WhgvPAb zUlK)1rs|3>T!sf>)C=Cb$9q7GstfyP4Koa%oC}hlo70eGxNbR3X>U_|ZSt<+AtkD~ ztg_O;PYgs#-2BuF`BYL>t3r#Yt8d!&xpT-DTbA+HL!b$sKSH6UEDBzv+T6p8j)p; z8W&xopDcc+A>+-D2Rj)bE!SxY*O$WM;izqgbE$N?Pk#Dau4u?Zh8y9CGwKxI3*yH? zb9ef~hP51rz^E~KhA4q;3{d4loT9q0Y!Zlixp#jP3^hHd-AXyDXRyRm0N59Y-Be~Xr zzSF_T&M{KGe_(W{M;|XA<90Etf2L0!;a*ms*3*H^=(B+|^tnLh^+!tnN?t+~Mi76P zAdg^}o-y3SZKQCAAK^t-|5`5|;ng{ODLM;GKqEB6RN_h8BTQ50aAYDJ8fg~r zI>1rFcM%R%M^(Qq+An)}6BIH}o2vL)2it_>?O8d(rlij`MT^|W@I9S~Vdu0hKLGy# DRN*s) literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/consumer/MessageConsumerService.class b/microboot-activemq/target/classes/cn/mldn/microboot/consumer/MessageConsumerService.class new file mode 100644 index 0000000000000000000000000000000000000000..abd9e34fd95d7718e41b4f09b315141fd803cb53 GIT binary patch literal 978 zcmb7DO;1xn6g>ll2c=ppUjlxBpKXyoP4->jf;0@?#!KY&YZdL*YEE?0o=w-4?_a$q4J|vor4UG zu4!%kP^&nJ$oP*aj)Mkm4Du?O9T}2`l)z*&*a`erpc?*Gtx2I37`-Evw08xD^M!4J z)P}B88p9aRU<9KA*@{%OnM5@*PlH;E1acJ}2CePDNS6;5Q}%_71#VUTTUc4(w4spX z4h@tG%;YPFN~_jL)hIi4^G_0GWklODmdt%mDQyEQ`KAJE6>S=R+;+v!O%Ty*ZC?7# zDE5QDW&Xn`uE^MuBE!5Bb&9Q2Jp@+a3@t@*qx34FgvK$0IS;c(T&wQ#;V6T%m}kex z7}naCDz*QZsV%FeAS!!U6qx(>6896?s*@SRd4Yw4y${7=ajE#xP@}ZfdtZ3otTgwNY^rpC--E@kqG2Zd^tAS zkhZ&R@&_$k#xmG-{tbX3o^gM2^f>c*6g-X;_c8Xhx1Hwbw!sAx95ej_9#3(`uZ=8& zO!9n!vorkVVodeWwvgg2VD1~He_-KR?%X~utaPx{!Icj3hxqAUSsJs9;W%dd#|9h> UfK`+jd58r%$!k46r)nMe1G|>}xc~qF literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/controller/DeptController.class b/microboot-activemq/target/classes/cn/mldn/microboot/controller/DeptController.class new file mode 100644 index 0000000000000000000000000000000000000000..30d865c071237028ad571ed1c38775e3a9dd2c9c GIT binary patch literal 930 zcmb7C+iDa+5IwzDGdnT5iI;f4A)AQyOTa)xi1C6jDkNcFeCnBLHyvlX*Y2K;pQRv( zKKKEClvp#nZZ<^0yj1n+sycQ3`Rn@+0Bg9@MvdWKqIsUBBvfKeY>elL(cYRYla@b~ zL%%hJZ8R9xj|UW9WwTM6vGZ0W{)uq%Fq)y065WopBb7*oUUZzvjg9eFS5C#5+|=55;g!*j;c~PuM&ctE(@(xFohfW0DYErQY2_a?)O#y^hQ^jjWq>;7 zL(CyyScsICuZujEc2^KJLpL&s$oj&n5>GxGeos-Z`+q6BBJ(*I@qb! z@m!VjT|9bI56bPGY!+_jBsXxAYOd2kGt|n$Nw*1=`V{FJX<9VN4k1pOk#4SjMfkZg zpC(y41M^rQ8IB!r24@LTLs%q|lJX*HG3+8Yh7f4I`U9PCt$Xc=lt6y;G8?G>X YB2>d6e|LsInDE!A{L<^zwCLNwZ)bk>KmY&$ literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/dao/IDeptDAO.class b/microboot-activemq/target/classes/cn/mldn/microboot/dao/IDeptDAO.class new file mode 100644 index 0000000000000000000000000000000000000000..c2964bd7c1163287bbe01c8b372c52bbf9984dc5 GIT binary patch literal 361 zcmaKo!AiqG5QhJ)+O*ZGc=OVuv=`^%Eg}SqAVdllJb2q|);MLm8#bFhoChDkhY~jd z@lfzGGylx@GsAp+e|!SC!C8WVz)V@%nlc7f-WARTDy5^xrLMy=TO~LYIN!*fBqMD_ zt74;75J=wGmYFdE7xP8l&)dL;a&AH@FkW+IWoW$?pgrI=-(R|O)U8bKqI*=jd#`1P z=GpuocJV4OS-aLN{lF&D)8DhNyNd)apIaMvt6#X`!syIe7i3^(8-c6b`HEyM)w?Dx uV!I*v2hfwOYwgpafWSd~7%+&hIKnXMq*EA0J;tQ3kNbFnY0MpQ3j6@`zG6WD literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/producer/IMessageProducerService.class b/microboot-activemq/target/classes/cn/mldn/microboot/producer/IMessageProducerService.class new file mode 100644 index 0000000000000000000000000000000000000000..02782fc4723f0a79dc8d9d71807940b7c380a3bc GIT binary patch literal 200 zcmX^0Z`VEs1_l!bPId++Mh2tgJpJ696d;kAT$G=bpI@S1P?Voinw(ms@9CRbT%4Gm z8UPgtPAw|SOipEIU}0ns$Vx0r)Xz!GOV{^L%1TWxVPxPgPR&b!YGGs$)$lWrkilVv9!M)2BLgD?GtjLJ42(bXKv+1GQIbI%;#`Stt9PXG_GT}CAEC^j+~ba~UUvmI-_96H<0VscU^ z!-0H3X{vhkI(N3njdV;094ezIu+�B?rp%WA9t168dP}d&#*nwvOcUDMbx|i-(!@sq&jxWLrQJtV&cluhm11ryPRi*PH%#XV>5f&X#ZHCP~T|_6rb2GRZzfk74ujS zSZr!TFSDdW?nrT4fm+kXYS30rhxgoB^zStD*lV64(?7&#GIJ@JZZ4+4T7ArSauqEf z)N1UsXTefbQO3D&+Nfd<)e5d)vy7_(_x@YiDz0HmU?H|Y@hBv8HC0u zKDj4oR!GubkmY1dBGypNAy#S#4m8zrDb# zgoqy&gU_@46U?x!u#JK&fB8hXQ}!-$hGZ+)mUh2m>C3pJ#(Mw&7q9Rh05}1wSYs=& zj`O^S;-}m^VmrV46&HA2y7LW}Pe3Z;V2uG*#z5Y=xEH!i7ZvShOr|C$GXfImun zTg3_m!9((xH}l>b=KbUK4ZtZ5$|x`#hlVe7M4t+somuO7D&10rk`Mbb@slr5Mv0+0 z7fZplFfkv^<}&mQC9P5_?M^pXk(pPT2h{5^R3|Dn!e>r0@D0I5uz7iDd498ZNz;ep z%y_ks4=PnNEw7BRUU+3q%5WZ77xOf6%EXUOEabCwPux3UQW54FE`H?vZrv7|7FV1U z(a7kRBE`TMiXw^_jyiw%=}sByiL;4_R~8t~{^Q_gJ(=Gh4{q;=<3XRHHnEut<+aij zQR{c!CwZFN3}la70tJeH3)?85oFi0FrCKMxMz21_4hb6AC6E)1Z(>iPi57wOYHI%z D_au+$ literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/service/impl/DeptServiceImpl.class b/microboot-activemq/target/classes/cn/mldn/microboot/service/impl/DeptServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..90323d4cf6dc23d1a134e214fa6000762b2a0c4a GIT binary patch literal 958 zcmaJYx15PjaH+2(_`wDbcCCFP?eMXEXUma0|M3aQeHN)5_^o3rZ%m(4ozIsyI@ z2au3ZIq(DcQHb$2gou#Xu$U)u7jr=CvSdhUGwqB5n(#+<6qt+qa5py|_W@tVWT5e5_JS zthIWklMk$lc|b9`E4EZO5q4mxES~}#+)!+&vsp9_8%0oCD)2F1#wH&4xX-XPyO9-a zVU;?6p^~T>$J7%MMU+*WQKGHI1RMNdLq9@;L^Ny!h8maBazT~5C*T6PCI7e%amgnA0zDR$# zK)yuY-O)(N-l7vH&&bd1e#62S+IUzZ>%hPQZj*IT0$>>{Ks^cWbt_y=c9La^xR@ zgv8^(58y{3#%t3?Y9tVs8O^t|-^_e7KYxAy0pK2P`)DxSk20PnyJS>kbf~rEg;fcU zbY_iC5^4B)m|G(v`$Xh&;|TWQG0g3Yw}K}ki}_Z#FC)v)PGz2pSnlY;M3P}`s7=iC zH%4Xgo)M{hr_F(*mxq>bjwcTombQz`s#K0tuEIpFXPLIbDxKvF-ChGwrnV(>Qfu56)+c7PeQ7&=3h$rnW$O7l_>HN*T+McC@0O(A3JKSw8)s;g>XG*;D*Y+)4f1pmWM?Vj zx#!bl%Vbbmhip(KU=C*}`aqg25K?~Lgy#x%RzG8L?ao)6`-V#%KGIVI d$24t6vs|UtG$3pR*Bo^R*Kx!3b<_R4^&1L!^-KT& literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/vo/Dept.class b/microboot-activemq/target/classes/cn/mldn/microboot/vo/Dept.class new file mode 100644 index 0000000000000000000000000000000000000000..46f2356a3ca2161724fed86b30fdd27cc74cd2c6 GIT binary patch literal 1128 zcmZ`%%Wl&^6g`vXY1}qAX-Y|fi3{Cis&M!5<)DTcoe2`Jdx{k!B>F< zsRR-qz(*nOj16(DRF>y)=iGD8Ju|=m{P+dn2+s=0Fl-Hdd+fP1h+!ZHQik@0v|sZ{ zSU{GceCAv@w&(aG`($v&hZM~-RCQEHyUzpRc;d4&@Hj)>r8HksR&Soxlm4j7kaK-! zOc*P1)DHup5A)B3FT!Jnl~((dA^S?Y+`tOfO)uyc+N~hIoC*)|QB`|E7D4!3_mx>Y zYSl8)Mu+ahnM}CvG8`o9MfccEcD_L0En=V4?l<&}Y3f5oXs3Ao=}!2P=6S@xJ}N~| zOf*nuF#2*D4EYLTIb`S~^XY|Vlx;NUDNe6|##P$cG&7oWolC5J z)v$65Qqb$PR!{=KLWO2}t=OP(G5H&6U+6G{d9txI`3AP)` z!3u#fuSBVSlz p``)^HiDrkanc;!8H^Tv~w`sB-(lEp0w9w6j(B^-;kF>8({{koD&gB3A literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/cn/mldn/microboot/vo/Member.class b/microboot-activemq/target/classes/cn/mldn/microboot/vo/Member.class new file mode 100644 index 0000000000000000000000000000000000000000..59c00d58c162bb9e253a3c32c6804c866f696696 GIT binary patch literal 1566 zcmaKr+iu!G5QcvP!2#SHI3>-gX_BTuTHFIYSCN`Vl`4_+f-3h5SY#t(OOA=uK2`WHc;Yh$~^*!Wo#Kx))Z@*OApwR&S+ib}UZ{TYeQ?+tQF8%08vEqnx(u4BlwS zIATcg;zXq5ds4;HVnCtNMChaATLa6Zy!o#5{PVu}a^pJkrEMMy-=b*tQrNWj7dL@BEN94Oy_j(KJdb){Nd#*{kQoT^@xr+mV0vD2=B9P%V3 zr$Abnv>gJJY}|ERdMk zBJsG?NXv#fGVFvGI9+Ubg>3lDz#^7NOon6eRJoy+4f7p$-&ct6u6@q2ERz zz$$LjlZG{{(>k4ejg4=yP(9U?Vy@uih?GMMdRM4OHRrjK*~` z^|q=%4zd#mDJO#L;a(ERP8?)~KvrjfaHAPyANNDAsGZlS#X;5*K^izn0;$D8HVI^F z1_<9YgFL{)1dwJNWIGY$5gsRjG~*z<1hO{+gh!1*p5SQ$NGlGqp9u0CFOoo7agaKJ QG-iPCtTV_ + + + + + + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + + ${LOG_HOME}/${APP}_detail.log + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + ${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd} + + + + ${LOG_HOME}/${APP}_access.log + + %d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n + + + ${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microboot-activemq/target/classes/mybatis/mapper/cn/mldn/Dept.xml b/microboot-activemq/target/classes/mybatis/mapper/cn/mldn/Dept.xml new file mode 100644 index 0000000..6557a3a --- /dev/null +++ b/microboot-activemq/target/classes/mybatis/mapper/cn/mldn/Dept.xml @@ -0,0 +1,11 @@ + + + + + + INSERT INTO dept(dname) VALUES (#{dname}) ; + + diff --git a/microboot-activemq/target/classes/mybatis/mybatis.cfg.xml b/microboot-activemq/target/classes/mybatis/mybatis.cfg.xml new file mode 100644 index 0000000..4d128c0 --- /dev/null +++ b/microboot-activemq/target/classes/mybatis/mybatis.cfg.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/microboot-activemq/target/classes/static/images/mldn.ico b/microboot-activemq/target/classes/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-activemq/target/classes/static/info/message_info.html b/microboot-activemq/target/classes/static/info/message_info.html new file mode 100644 index 0000000..1b66139 --- /dev/null +++ b/microboot-activemq/target/classes/static/info/message_info.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-activemq/target/classes/static/js/main.js b/microboot-activemq/target/classes/static/js/main.js new file mode 100644 index 0000000..c8ae7c9 --- /dev/null +++ b/microboot-activemq/target/classes/static/js/main.js @@ -0,0 +1,3 @@ +window.onload = function() { + console.log("****** www.mldn.cn ******") ; +} \ No newline at end of file diff --git a/microboot-activemq/target/classes/static/message_index.html b/microboot-activemq/target/classes/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-activemq/target/classes/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-activemq/target/classes/templates/upload_page.html b/microboot-activemq/target/classes/templates/upload_page.html new file mode 100644 index 0000000..5f71423 --- /dev/null +++ b/microboot-activemq/target/classes/templates/upload_page.html @@ -0,0 +1,21 @@ + + + + SpringBoot模版渲染 + + + + + +
+ 姓名:
+ 照片:
+ 照片:
+ 照片:
+ +
+ 查看照片 + 查看照片 + 查看照片 + + \ No newline at end of file diff --git a/microboot-activemq/target/classes/templates/upload_show.html b/microboot-activemq/target/classes/templates/upload_show.html new file mode 100644 index 0000000..0e86d94 --- /dev/null +++ b/microboot-activemq/target/classes/templates/upload_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + + + + + \ No newline at end of file diff --git a/microboot-activemq/target/test-classes/cn/mldn/microboot/AppTest.class b/microboot-activemq/target/test-classes/cn/mldn/microboot/AppTest.class new file mode 100644 index 0000000000000000000000000000000000000000..d317ee0ba6e633124e836a6386d4dfc23cce4a92 GIT binary patch literal 621 zcmZ`$O-sW-5PjRGO&jA^Y_+w1ASkpI%t3DzK?+J);33hel80v0dPyA~N!j<7D3}gHJ;bGuKu?~%)HckQ& z+c%O=yr)p!+Y0IO$YUs;3WClUs!eCiAGz)G;MVTPQUtf1){sH#hS#2fJjx~tC^9TN zBJg_2WaP;KANizVIibt_A(uks*`pTUiHM=${A;blP>RV&k6bB{KkXR`Q6gdjYt5E3 zZ-$PJHJW}N)K`@TEL4^6b%x5%0lPkrqI5o8S)gSxs<&nx0&tuNIAzImFDT6fFe0Zk)lr78FF-hV*7B4(hGg%U{EyD*9tMK zSfG4;#)64O%7~98ER#kVD_G66+F1wV9oD7Arl>pI0b8k->c_BwT2^;Vw?Yfr XE9$>3>_fvrT4v5jnFWUJRD9rN9v6#k|c7D^E)H=)QyL|PP9vErq~q!3Lotrv&{mk+rq83yaz^NcEg;o247wy5uL&-UG*vS&kB zLOx;$r_v>c$d+B9 zyShPqd(~o*TNQ@b^CbO<&Y1-0j6QgQoPETbYYt5;N+%W*Np(L0ejSv`Vt+lFFEm<0=*ydJM-27*40Q z(_P7J{H&^2jN>|%)K}RpB!s*v$F_TfyE@J5o{$H$8EqIfpIGKDWE2d~A2Nab znKq}VuV@xBTZ#>V5hh_h{5QriFY9}}oO7Hl+u9dZ-wp0b7V|VvVY=50AvIOxHHwt) zB_ASB_knCbMLKy#KDvC0_=jNo5?PfD3}cXNyp@0eK{P0^>w_0yE^7 zXd)GZ@fKd2K?sXj!781t(;oe~ejv({lyZy05N-#Ak_5R%DROdOYiF@?%_W0 E8*0l-iU0rr literal 0 HcmV?d00001 diff --git a/microboot-actuator/.classpath b/microboot-actuator/.classpath new file mode 100644 index 0000000..a6f04e8 --- /dev/null +++ b/microboot-actuator/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/microboot-actuator/.project b/microboot-actuator/.project new file mode 100644 index 0000000..cb97b43 --- /dev/null +++ b/microboot-actuator/.project @@ -0,0 +1,35 @@ + + + microboot-actuator + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/microboot-actuator/.settings/org.eclipse.core.resources.prefs b/microboot-actuator/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..a6dcfb7 --- /dev/null +++ b/microboot-actuator/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/main/view=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/microboot-actuator/.settings/org.eclipse.jdt.core.prefs b/microboot-actuator/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/microboot-actuator/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/microboot-actuator/.settings/org.eclipse.m2e.core.prefs b/microboot-actuator/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/microboot-actuator/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/microboot-actuator/.settings/org.eclipse.wst.common.project.facet.core.xml b/microboot-actuator/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..e822977 --- /dev/null +++ b/microboot-actuator/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/microboot-actuator/pom.xml b/microboot-actuator/pom.xml new file mode 100644 index 0000000..93eb611 --- /dev/null +++ b/microboot-actuator/pom.xml @@ -0,0 +1,72 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-actuator + microboot-actuator + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-actuator + + + + org.springframework.boot + spring-boot-starter-mail + + + + ch.qos.logback + logback-core + + + + org.springframework.kafka + spring-kafka + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-actuator/src/main/java/cn/mldn/microboot/StartSpringBootMain.java b/microboot-actuator/src/main/java/cn/mldn/microboot/StartSpringBootMain.java new file mode 100644 index 0000000..9e9a3d4 --- /dev/null +++ b/microboot-actuator/src/main/java/cn/mldn/microboot/StartSpringBootMain.java @@ -0,0 +1,11 @@ +package cn.mldn.microboot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描 +public class StartSpringBootMain { + public static void main(String[] args) throws Exception { + SpringApplication.run(StartSpringBootMain.class, args); + } +} diff --git a/microboot-actuator/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java b/microboot-actuator/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java new file mode 100644 index 0000000..5127e93 --- /dev/null +++ b/microboot-actuator/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java @@ -0,0 +1,15 @@ +package cn.mldn.microboot.util.controller; + +import java.util.Locale; + +import javax.annotation.Resource; + +import org.springframework.context.MessageSource; + +public abstract class AbstractBaseController { + @Resource + private MessageSource messageSource; // 自动注入此资源对象 + public String getMessage(String key, String... args) { + return this.messageSource.getMessage(key, args, Locale.getDefault()); + } +} diff --git a/microboot-actuator/src/main/resources/application.yml b/microboot-actuator/src/main/resources/application.yml new file mode 100644 index 0000000..12c1326 --- /dev/null +++ b/microboot-actuator/src/main/resources/application.yml @@ -0,0 +1,5 @@ +server: + port: 80 +spring: + messages: + basename: i18n/Messages,i18n/Pages \ No newline at end of file diff --git a/microboot-actuator/src/main/resources/i18n/Messages.properties b/microboot-actuator/src/main/resources/i18n/Messages.properties new file mode 100644 index 0000000..83d9229 --- /dev/null +++ b/microboot-actuator/src/main/resources/i18n/Messages.properties @@ -0,0 +1,2 @@ +welcome.url=www.mldn.cn +welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01 \ No newline at end of file diff --git a/microboot-actuator/src/main/resources/i18n/Pages.properties b/microboot-actuator/src/main/resources/i18n/Pages.properties new file mode 100644 index 0000000..7acc581 --- /dev/null +++ b/microboot-actuator/src/main/resources/i18n/Pages.properties @@ -0,0 +1,2 @@ +member.add.page=/pages/back/admin/member/member_add.jsp +member.add.action=/pages/back/admin/member/member_add.action \ No newline at end of file diff --git a/microboot-actuator/src/main/resources/logback.xml b/microboot-actuator/src/main/resources/logback.xml new file mode 100644 index 0000000..1f01e35 --- /dev/null +++ b/microboot-actuator/src/main/resources/logback.xml @@ -0,0 +1,43 @@ + + + + + + + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + + ${LOG_HOME}/${APP}_detail.log + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + ${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd} + + + + ${LOG_HOME}/${APP}_access.log + + %d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n + + + ${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microboot-actuator/src/main/view/static/images/mldn.ico b/microboot-actuator/src/main/view/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-actuator/src/main/view/static/info/message_info.html b/microboot-actuator/src/main/view/static/info/message_info.html new file mode 100644 index 0000000..1b66139 --- /dev/null +++ b/microboot-actuator/src/main/view/static/info/message_info.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-actuator/src/main/view/static/js/main.js b/microboot-actuator/src/main/view/static/js/main.js new file mode 100644 index 0000000..c8ae7c9 --- /dev/null +++ b/microboot-actuator/src/main/view/static/js/main.js @@ -0,0 +1,3 @@ +window.onload = function() { + console.log("****** www.mldn.cn ******") ; +} \ No newline at end of file diff --git a/microboot-actuator/src/main/view/static/message_index.html b/microboot-actuator/src/main/view/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-actuator/src/main/view/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-actuator/src/main/view/templates/upload_page.html b/microboot-actuator/src/main/view/templates/upload_page.html new file mode 100644 index 0000000..5f71423 --- /dev/null +++ b/microboot-actuator/src/main/view/templates/upload_page.html @@ -0,0 +1,21 @@ + + + + SpringBoot模版渲染 + + + + + +
+ 姓名:
+ 照片:
+ 照片:
+ 照片:
+ +
+ 查看照片 + 查看照片 + 查看照片 + + \ No newline at end of file diff --git a/microboot-actuator/src/main/view/templates/upload_show.html b/microboot-actuator/src/main/view/templates/upload_show.html new file mode 100644 index 0000000..0e86d94 --- /dev/null +++ b/microboot-actuator/src/main/view/templates/upload_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + + + + + \ No newline at end of file diff --git a/microboot-actuator/target/classes/META-INF/MANIFEST.MF b/microboot-actuator/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d4c16dd --- /dev/null +++ b/microboot-actuator/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: foreveriss +Build-Jdk: 1.8.0_121 +Created-By: Maven Integration for Eclipse + diff --git a/microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.properties b/microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.properties new file mode 100644 index 0000000..dd45771 --- /dev/null +++ b/microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Thu Jun 29 23:44:59 CST 2017 +version=0.0.1-SNAPSHOT +groupId=cn.mldn +m2e.projectName=microboot-actuator +m2e.projectLocation=/Users/foreveriss/workspace/microboot/microboot-actuator +artifactId=microboot-actuator diff --git a/microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.xml b/microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.xml new file mode 100644 index 0000000..93eb611 --- /dev/null +++ b/microboot-actuator/target/classes/META-INF/maven/cn.mldn/microboot-actuator/pom.xml @@ -0,0 +1,72 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-actuator + microboot-actuator + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-actuator + + + + org.springframework.boot + spring-boot-starter-mail + + + + ch.qos.logback + logback-core + + + + org.springframework.kafka + spring-kafka + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-actuator/target/classes/application.yml b/microboot-actuator/target/classes/application.yml new file mode 100644 index 0000000..12c1326 --- /dev/null +++ b/microboot-actuator/target/classes/application.yml @@ -0,0 +1,5 @@ +server: + port: 80 +spring: + messages: + basename: i18n/Messages,i18n/Pages \ No newline at end of file diff --git a/microboot-actuator/target/classes/cn/mldn/microboot/StartSpringBootMain.class b/microboot-actuator/target/classes/cn/mldn/microboot/StartSpringBootMain.class new file mode 100644 index 0000000000000000000000000000000000000000..eb9ab34756e204b73208ba13efeed9b15e536348 GIT binary patch literal 766 zcma)4O-~y!5Pc4T4coLp(o*Ob>H!gQz!$_N2&tgy z9{L0LQB}uIMRM3fFEgGGzj<%$yFb5v131J^f(FB`G`uX%$!O{9*jmqrUN}FTIBoJ% zir))u5;PgsFU5Dk3t@8paeS$yXIMGbM*9na*AdkfQN zD;d-g%Iff?HC|nNerC;u&MOzzu`r0zp&Yadm(y~(HOM4%Xe%exI~{hrRr7KOK{>)spS{-i^^Lf8VM>s{}T&D2Y3xy2z@D_K__~5vI#|;JR`r{ zzeVdNmQ%8!3~G2lwmoYg|B#|pJi;1*tkbzkm5m5<6k&l@hxLD=`(=)lQYG9Ks^cWbt_y=c9La^xR@ zgv8^(58y{3#%t3?Y9tVs8O^t|-^_e7KYxAy0pK2P`)DxSk20PnyJS>kbf~rEg;fcU zbY_iC5^4B)m|G(v`$Xh&;|TWQG0g3Yw}K}ki}_Z#FC)v)PGz2pSnlY;M3P}`s7=iC zH%4Xgo)M{hr_F(*mxq>bjwcTombQz`s#K0tuEIpFXPLIbDxKvF-ChGwrnV(>Qfu56)+c7PeQ7&=3h$rnW$O7l_>HN*T+McC@0O(A3JKSw8)s;g>XG*;D*Y+)4f1pmWM?Vj zx#!bl%Vbbmhip(KU=C*}`aqg25K?~Lgy#x%RzG8L?ao)6`-V#%KGIVI d$24t6vs|UtG$3pR*Bo^R*Kx!3b<_R4^&1L!^-KT& literal 0 HcmV?d00001 diff --git a/microboot-actuator/target/classes/i18n/Messages.properties b/microboot-actuator/target/classes/i18n/Messages.properties new file mode 100644 index 0000000..83d9229 --- /dev/null +++ b/microboot-actuator/target/classes/i18n/Messages.properties @@ -0,0 +1,2 @@ +welcome.url=www.mldn.cn +welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01 \ No newline at end of file diff --git a/microboot-actuator/target/classes/i18n/Pages.properties b/microboot-actuator/target/classes/i18n/Pages.properties new file mode 100644 index 0000000..7acc581 --- /dev/null +++ b/microboot-actuator/target/classes/i18n/Pages.properties @@ -0,0 +1,2 @@ +member.add.page=/pages/back/admin/member/member_add.jsp +member.add.action=/pages/back/admin/member/member_add.action \ No newline at end of file diff --git a/microboot-actuator/target/classes/logback.xml b/microboot-actuator/target/classes/logback.xml new file mode 100644 index 0000000..1f01e35 --- /dev/null +++ b/microboot-actuator/target/classes/logback.xml @@ -0,0 +1,43 @@ + + + + + + + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + + ${LOG_HOME}/${APP}_detail.log + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + ${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd} + + + + ${LOG_HOME}/${APP}_access.log + + %d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n + + + ${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microboot-actuator/target/classes/static/images/mldn.ico b/microboot-actuator/target/classes/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-actuator/target/classes/static/info/message_info.html b/microboot-actuator/target/classes/static/info/message_info.html new file mode 100644 index 0000000..1b66139 --- /dev/null +++ b/microboot-actuator/target/classes/static/info/message_info.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-actuator/target/classes/static/js/main.js b/microboot-actuator/target/classes/static/js/main.js new file mode 100644 index 0000000..c8ae7c9 --- /dev/null +++ b/microboot-actuator/target/classes/static/js/main.js @@ -0,0 +1,3 @@ +window.onload = function() { + console.log("****** www.mldn.cn ******") ; +} \ No newline at end of file diff --git a/microboot-actuator/target/classes/static/message_index.html b/microboot-actuator/target/classes/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-actuator/target/classes/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-actuator/target/classes/templates/upload_page.html b/microboot-actuator/target/classes/templates/upload_page.html new file mode 100644 index 0000000..5f71423 --- /dev/null +++ b/microboot-actuator/target/classes/templates/upload_page.html @@ -0,0 +1,21 @@ + + + + SpringBoot模版渲染 + + + + + +
+ 姓名:
+ 照片:
+ 照片:
+ 照片:
+ +
+ 查看照片 + 查看照片 + 查看照片 + + \ No newline at end of file diff --git a/microboot-actuator/target/classes/templates/upload_show.html b/microboot-actuator/target/classes/templates/upload_show.html new file mode 100644 index 0000000..0e86d94 --- /dev/null +++ b/microboot-actuator/target/classes/templates/upload_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + + + + + \ No newline at end of file diff --git a/microboot-advance/.classpath b/microboot-advance/.classpath new file mode 100644 index 0000000..12c67c9 --- /dev/null +++ b/microboot-advance/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/microboot-advance/.project b/microboot-advance/.project new file mode 100644 index 0000000..edfb056 --- /dev/null +++ b/microboot-advance/.project @@ -0,0 +1,35 @@ + + + microboot-advance + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/microboot-advance/.settings/org.eclipse.core.resources.prefs b/microboot-advance/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..a6dcfb7 --- /dev/null +++ b/microboot-advance/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/main/view=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/microboot-advance/.settings/org.eclipse.jdt.core.prefs b/microboot-advance/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/microboot-advance/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/microboot-advance/.settings/org.eclipse.m2e.core.prefs b/microboot-advance/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/microboot-advance/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/microboot-advance/.settings/org.eclipse.wst.common.project.facet.core.xml b/microboot-advance/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..e822977 --- /dev/null +++ b/microboot-advance/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/microboot-advance/.springBeans b/microboot-advance/.springBeans new file mode 100644 index 0000000..d3a2e9a --- /dev/null +++ b/microboot-advance/.springBeans @@ -0,0 +1,16 @@ + + + 1 + + + + + + + + + java:cn.mldn.microboot.StartSpringBootMain + + + + diff --git a/microboot-advance/pom.xml b/microboot-advance/pom.xml new file mode 100644 index 0000000..a93105c --- /dev/null +++ b/microboot-advance/pom.xml @@ -0,0 +1,52 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-advance + microboot-advance + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-advance/src/main/java/cn/mldn/microboot/StartSpringBootMain.java b/microboot-advance/src/main/java/cn/mldn/microboot/StartSpringBootMain.java new file mode 100644 index 0000000..87d91fa --- /dev/null +++ b/microboot-advance/src/main/java/cn/mldn/microboot/StartSpringBootMain.java @@ -0,0 +1,10 @@ +package cn.mldn.microboot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描 +public class StartSpringBootMain { + public static void main(String[] args) throws Exception { + SpringApplication.run(StartSpringBootMain.class, args); + } +} diff --git a/microboot-advance/src/main/java/cn/mldn/microboot/controller/MessageController.java b/microboot-advance/src/main/java/cn/mldn/microboot/controller/MessageController.java new file mode 100644 index 0000000..b311264 --- /dev/null +++ b/microboot-advance/src/main/java/cn/mldn/microboot/controller/MessageController.java @@ -0,0 +1,26 @@ +package cn.mldn.microboot.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import cn.mldn.microboot.util.controller.AbstractBaseController; + +@Controller +public class MessageController extends AbstractBaseController { + @RequestMapping(value = "/show", method = RequestMethod.GET) + public String show(String mid, Model model) { + model.addAttribute("url", "www.mldn.cn"); // request属性传递包装 + model.addAttribute("mid", mid); // request属性传递包装 + return "message/message_show"; // 此处只返回一个路径, 该路径没有设置后缀,后缀默认是*.html + } +} + + + + + + + + diff --git a/microboot-advance/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java b/microboot-advance/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java new file mode 100644 index 0000000..5127e93 --- /dev/null +++ b/microboot-advance/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java @@ -0,0 +1,15 @@ +package cn.mldn.microboot.util.controller; + +import java.util.Locale; + +import javax.annotation.Resource; + +import org.springframework.context.MessageSource; + +public abstract class AbstractBaseController { + @Resource + private MessageSource messageSource; // 自动注入此资源对象 + public String getMessage(String key, String... args) { + return this.messageSource.getMessage(key, args, Locale.getDefault()); + } +} diff --git a/microboot-advance/src/main/resources/application-beta.properties b/microboot-advance/src/main/resources/application-beta.properties new file mode 100644 index 0000000..e8f85d5 --- /dev/null +++ b/microboot-advance/src/main/resources/application-beta.properties @@ -0,0 +1,2 @@ +spring.messages.basename=i18n/Messages,i18n/Pages +server.port=9090 \ No newline at end of file diff --git a/microboot-advance/src/main/resources/application-dev.properties b/microboot-advance/src/main/resources/application-dev.properties new file mode 100644 index 0000000..6348e2e --- /dev/null +++ b/microboot-advance/src/main/resources/application-dev.properties @@ -0,0 +1,2 @@ +spring.messages.basename=i18n/Messages,i18n/Pages +server.port=8080 \ No newline at end of file diff --git a/microboot-advance/src/main/resources/application-product.properties b/microboot-advance/src/main/resources/application-product.properties new file mode 100644 index 0000000..70bcce4 --- /dev/null +++ b/microboot-advance/src/main/resources/application-product.properties @@ -0,0 +1,2 @@ +spring.messages.basename=i18n/Messages,i18n/Pages +server.port=80 \ No newline at end of file diff --git a/microboot-advance/src/main/resources/application.properties b/microboot-advance/src/main/resources/application.properties new file mode 100644 index 0000000..01308f4 --- /dev/null +++ b/microboot-advance/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.profiles.active=product diff --git a/microboot-advance/src/main/resources/i18n/Messages.properties b/microboot-advance/src/main/resources/i18n/Messages.properties new file mode 100644 index 0000000..83d9229 --- /dev/null +++ b/microboot-advance/src/main/resources/i18n/Messages.properties @@ -0,0 +1,2 @@ +welcome.url=www.mldn.cn +welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01 \ No newline at end of file diff --git a/microboot-advance/src/main/resources/i18n/Pages.properties b/microboot-advance/src/main/resources/i18n/Pages.properties new file mode 100644 index 0000000..7acc581 --- /dev/null +++ b/microboot-advance/src/main/resources/i18n/Pages.properties @@ -0,0 +1,2 @@ +member.add.page=/pages/back/admin/member/member_add.jsp +member.add.action=/pages/back/admin/member/member_add.action \ No newline at end of file diff --git a/microboot-advance/src/main/view/static/images/mldn.ico b/microboot-advance/src/main/view/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-advance/src/main/view/static/message_index.html b/microboot-advance/src/main/view/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-advance/src/main/view/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-advance/src/main/view/templates/message/message_show.html b/microboot-advance/src/main/view/templates/message/message_show.html new file mode 100644 index 0000000..9126f0b --- /dev/null +++ b/microboot-advance/src/main/view/templates/message/message_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + +

+

+ + \ No newline at end of file diff --git a/microboot-advance/src/test/java/cn/mldn/microboot/AppTest.java b/microboot-advance/src/test/java/cn/mldn/microboot/AppTest.java new file mode 100644 index 0000000..a094258 --- /dev/null +++ b/microboot-advance/src/test/java/cn/mldn/microboot/AppTest.java @@ -0,0 +1,38 @@ +package cn.mldn.microboot; + +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/microboot-advance/src/test/java/cn/mldn/microboot/test/TestMessageController.java b/microboot-advance/src/test/java/cn/mldn/microboot/test/TestMessageController.java new file mode 100644 index 0000000..21c04dd --- /dev/null +++ b/microboot-advance/src/test/java/cn/mldn/microboot/test/TestMessageController.java @@ -0,0 +1,19 @@ +package cn.mldn.microboot.test; + +import javax.annotation.Resource; + +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; + +import cn.mldn.microboot.StartSpringBootMain; +import cn.mldn.microboot.controller.MessageController; + +@SpringBootTest(classes = StartSpringBootMain.class) +@RunWith(SpringJUnit4ClassRunner.class) +@WebAppConfiguration +public class TestMessageController { + @Resource + private MessageController messageController; +} diff --git a/microboot-advance/target/classes/META-INF/MANIFEST.MF b/microboot-advance/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d4c16dd --- /dev/null +++ b/microboot-advance/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: foreveriss +Build-Jdk: 1.8.0_121 +Created-By: Maven Integration for Eclipse + diff --git a/microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.properties b/microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.properties new file mode 100644 index 0000000..5ba01c7 --- /dev/null +++ b/microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Thu Jun 29 23:45:00 CST 2017 +version=0.0.1-SNAPSHOT +groupId=cn.mldn +m2e.projectName=microboot-advance +m2e.projectLocation=/Users/foreveriss/workspace/microboot/microboot-advance +artifactId=microboot-advance diff --git a/microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.xml b/microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.xml new file mode 100644 index 0000000..a93105c --- /dev/null +++ b/microboot-advance/target/classes/META-INF/maven/cn.mldn/microboot-advance/pom.xml @@ -0,0 +1,52 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-advance + microboot-advance + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-advance/target/classes/application-beta.properties b/microboot-advance/target/classes/application-beta.properties new file mode 100644 index 0000000..e8f85d5 --- /dev/null +++ b/microboot-advance/target/classes/application-beta.properties @@ -0,0 +1,2 @@ +spring.messages.basename=i18n/Messages,i18n/Pages +server.port=9090 \ No newline at end of file diff --git a/microboot-advance/target/classes/application-dev.properties b/microboot-advance/target/classes/application-dev.properties new file mode 100644 index 0000000..6348e2e --- /dev/null +++ b/microboot-advance/target/classes/application-dev.properties @@ -0,0 +1,2 @@ +spring.messages.basename=i18n/Messages,i18n/Pages +server.port=8080 \ No newline at end of file diff --git a/microboot-advance/target/classes/application-product.properties b/microboot-advance/target/classes/application-product.properties new file mode 100644 index 0000000..70bcce4 --- /dev/null +++ b/microboot-advance/target/classes/application-product.properties @@ -0,0 +1,2 @@ +spring.messages.basename=i18n/Messages,i18n/Pages +server.port=80 \ No newline at end of file diff --git a/microboot-advance/target/classes/application.properties b/microboot-advance/target/classes/application.properties new file mode 100644 index 0000000..01308f4 --- /dev/null +++ b/microboot-advance/target/classes/application.properties @@ -0,0 +1 @@ +spring.profiles.active=product diff --git a/microboot-advance/target/classes/cn/mldn/microboot/StartSpringBootMain.class b/microboot-advance/target/classes/cn/mldn/microboot/StartSpringBootMain.class new file mode 100644 index 0000000000000000000000000000000000000000..57c4fbaf2659605d5935cf7e2b1e486fb9e1eec0 GIT binary patch literal 766 zcma)4&2AGh5dNH|-DDeRNuad+RXrd=4){{_5>yE)IBh{9C>%IBuDf;FwIjz1eXX8a z^}qx0P*ukcB021V%Zz8n`hLd#b9?g}z&>^pG#Fk=!^`4?f|kxsto3~4h4Z7S(KQg5GLoJC+A9fhPAiaXn)AC(tkZ>Xdc-Um0|_$4pydF8@7mWZew#=)y_IW4DGgG@$8wsKN^)M2;VH81xjIA_@T zQW>vHHP$m7h>Wp58Y1MwT7A*KsJtbiQJ~_BKd~fqh&|9k=t}_&I?=mROsL|N8RgZ% z60P@itKm(W_+ T!4v8?@HEC}cuqO6z5wn3K5WP# literal 0 HcmV?d00001 diff --git a/microboot-advance/target/classes/cn/mldn/microboot/controller/MessageController.class b/microboot-advance/target/classes/cn/mldn/microboot/controller/MessageController.class new file mode 100644 index 0000000000000000000000000000000000000000..992444407f93bd3dde3f3a9faa07335da4f4fc13 GIT binary patch literal 1077 zcmb7DTTc@~6#k~Aw9?w*idYm8@J1==_+TPQjS1rArNsnDeK66??v7<}cc;$I()h3R z$>@VWz#nBiyKR7^O%t=poHLj2vS-fx`TOfPfG21ckz;6i5f1~O2IU#;YHhivBWrXJ zNW;4_jzwSYpRW`#$FMtzNvsMk1NYq68sXU&BEE!Xn17}sWuG(Tw;DZ$xqa=+1>|w1 zf&%6lY8@5HgCumNITmgp8Jv#xM9>pPrStLPoIO!7!{g4RlUeTDq!^#*A;Zh9&Z#&P zJP=WzA6cWKe!HVhpT~nV|71ichuVDRiQ--I7_=Lc0EU&rB(f@$Jryf*w--g)3afNP z=60v@4W-Ln75QA8pXG=0OCn?26@x+QgQ0LHf`tCPz(;Q9LupU6&+zoWIWr(p=HI+J zE}>3IVuBKGF_eeHVJp3QYJoCVu~x(#hSga`sNgQv87ji}_be67O)R;bTFZ;-zI9Kf zXQ_U(nA;_6lDAO#CERCN3P+8{$MNH+4$ibYD1_<#Fs#iMU|2ZPiSguXmA2LLL~FNF z%M8t_G_jRNYWsB{`Nd;sV*_NGUK5a`j5?UcBF#8OMzOH{1EufT_5zLRHc+MysEiI! zyh<~MDr!WsNO_%R*C==1gT=UxC5jR^u$)nUAi-3!zT@0UbOY2mQJuRsaA1 literal 0 HcmV?d00001 diff --git a/microboot-advance/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class b/microboot-advance/target/classes/cn/mldn/microboot/util/controller/AbstractBaseController.class new file mode 100644 index 0000000000000000000000000000000000000000..57c2010736d7a53f018c3ef128f43b998f54dc72 GIT binary patch literal 932 zcmbVKOK;Oa5dJoCYnnQwwB=F4qve^jh`n$Cf{;oP7g8#Ks^cWbt_y=c9La^xR@ zgv8^(58y{3#%t3?Y9tVs8O^t|-^_e7KYxAy0pK2P`)DxSk20PnyJS>kbf~rEg;fcU zbY_iC5^4B)m|G(v`$Xh&;|TWQG0g3Yw}K}ki}_Z#FC)v)PGz2pSnlY;M3P}`s7=iC zH%4Xgo)M{hr_F(*mxq>bjwcTombQz`s#K0tuEIpFXPLIbDxKvF-ChGwrnV(>Qfu56)+c7PeQ7&=3h$rnW$O7l_>HN*T+McC@0O(A3JKSw8)s;g>XG*;D*Y+)4f1pmWM?Vj zx#!bl%Vbbmhip(KU=C*}`aqg25K?~Lgy#x%RzG8L?ao)6`-V#%KGIVI d$24t6vs|UtG$3pR*Bo^R*Kx!3b<_R4^&1L!^-KT& literal 0 HcmV?d00001 diff --git a/microboot-advance/target/classes/i18n/Messages.properties b/microboot-advance/target/classes/i18n/Messages.properties new file mode 100644 index 0000000..83d9229 --- /dev/null +++ b/microboot-advance/target/classes/i18n/Messages.properties @@ -0,0 +1,2 @@ +welcome.url=www.mldn.cn +welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01 \ No newline at end of file diff --git a/microboot-advance/target/classes/i18n/Pages.properties b/microboot-advance/target/classes/i18n/Pages.properties new file mode 100644 index 0000000..7acc581 --- /dev/null +++ b/microboot-advance/target/classes/i18n/Pages.properties @@ -0,0 +1,2 @@ +member.add.page=/pages/back/admin/member/member_add.jsp +member.add.action=/pages/back/admin/member/member_add.action \ No newline at end of file diff --git a/microboot-advance/target/classes/static/images/mldn.ico b/microboot-advance/target/classes/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-advance/target/classes/static/message_index.html b/microboot-advance/target/classes/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-advance/target/classes/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-advance/target/classes/templates/message/message_show.html b/microboot-advance/target/classes/templates/message/message_show.html new file mode 100644 index 0000000..9126f0b --- /dev/null +++ b/microboot-advance/target/classes/templates/message/message_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + +

+

+ + \ No newline at end of file diff --git a/microboot-advance/target/test-classes/cn/mldn/microboot/AppTest.class b/microboot-advance/target/test-classes/cn/mldn/microboot/AppTest.class new file mode 100644 index 0000000000000000000000000000000000000000..d317ee0ba6e633124e836a6386d4dfc23cce4a92 GIT binary patch literal 621 zcmZ`$O-sW-5PjRGO&jA^Y_+w1ASkpI%t3DzK?+J);33hel80v0dPyA~N!j<7D3}gHJ;bGuKu?~%)HckQ& z+c%O=yr)p!+Y0IO$YUs;3WClUs!eCiAGz)G;MVTPQUtf1){sH#hS#2fJjx~tC^9TN zBJg_2WaP;KANizVIibt_A(uks*`pTUiHM=${A;blP>RV&k6bB{KkXR`Q6gdjYt5E3 zZ-$PJHJW}N)K`@TEL4^6b%x5%0lPkrqI5o8S)gSxs<&nx0&tuNIAzImFDT6fFe0Zk)lr78FF-hV*7B4(hGg%U{EyD*9tMK zSfG4;#)64O%7~98ER#kVD_G66+F1wV9oD7Arl>pI0b8k->c_BwT2^;Vw?Yfr XE9$>3>_fvrT4v5jnFWUJRD9Yx15Qbl;NdqC!4?dfmIPoD=bBH)lgcKriKwFTSk{&pD-Rah0*N(j2wttHg z5(j<&KMFB6rIlz9ml=;ee&+RzfBgLR9l!{~E?NT5w3StP$i`^za_52!R0p}wW|!(( z6*O@+cvqI>yJ!on&((>NrLu+mkk3g6fsN|#Oo8XwRkFSy$t&y~fvvs922;_@)Fv-! zY^@6_7-wsNVHV4tNp-O)_o#M_*TgqhUm0t{Yk`%=Pi6w`i94hoR&cYA>*xurWyaF` zrpn3hD@F@!W=^Yero4&q`DQyD8?LpzMEbv*!sUC@B;>7$Xp;R6$n`LJ`M%7*2Rmnurn{Uat3M(3K|ePrBd64fw_naq0mf5s{0@__R3V!_|( z$P|rFlik5X@YMK23bfF{D*G-+(O*luB2JK_8yrdYf_>-dSM**V=}OgHMafV h2^?*t^UY*$C+Lt1-Qn}QpCB~u;Xbb)Xl!8s`~p?R=F0#8 literal 0 HcmV?d00001 diff --git a/microboot-base/.classpath b/microboot-base/.classpath new file mode 100644 index 0000000..7200bb4 --- /dev/null +++ b/microboot-base/.classpath @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/microboot-base/.project b/microboot-base/.project new file mode 100644 index 0000000..0640b05 --- /dev/null +++ b/microboot-base/.project @@ -0,0 +1,35 @@ + + + microboot-base + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/microboot-base/.settings/org.eclipse.core.resources.prefs b/microboot-base/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..4c28b1a --- /dev/null +++ b/microboot-base/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/microboot-base/.settings/org.eclipse.jdt.core.prefs b/microboot-base/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/microboot-base/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/microboot-base/.settings/org.eclipse.m2e.core.prefs b/microboot-base/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/microboot-base/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/microboot-base/.settings/org.eclipse.wst.common.project.facet.core.xml b/microboot-base/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..e822977 --- /dev/null +++ b/microboot-base/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/microboot-base/.springBeans b/microboot-base/.springBeans new file mode 100644 index 0000000..07cfecb --- /dev/null +++ b/microboot-base/.springBeans @@ -0,0 +1,16 @@ + + + 1 + + + + + + + java:cn.mldn.microboot.StartSpringBootMain + + + + + + diff --git a/microboot-base/pom.xml b/microboot-base/pom.xml new file mode 100644 index 0000000..54d1f23 --- /dev/null +++ b/microboot-base/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-base + microboot-base + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-base/src/main/java/cn/mldn/microboot/StartSpringBootMain.java b/microboot-base/src/main/java/cn/mldn/microboot/StartSpringBootMain.java new file mode 100644 index 0000000..87d91fa --- /dev/null +++ b/microboot-base/src/main/java/cn/mldn/microboot/StartSpringBootMain.java @@ -0,0 +1,10 @@ +package cn.mldn.microboot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描 +public class StartSpringBootMain { + public static void main(String[] args) throws Exception { + SpringApplication.run(StartSpringBootMain.class, args); + } +} diff --git a/microboot-base/src/main/java/cn/mldn/microboot/controller/HelloController.java b/microboot-base/src/main/java/cn/mldn/microboot/controller/HelloController.java new file mode 100644 index 0000000..fda3229 --- /dev/null +++ b/microboot-base/src/main/java/cn/mldn/microboot/controller/HelloController.java @@ -0,0 +1,35 @@ +package cn.mldn.microboot.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class HelloController { + @RequestMapping(value="/echo/{message}",method=RequestMethod.GET) + public String echo(@PathVariable("message") String msg) { + return "【ECHO】" + msg ; + } + @RequestMapping("/mul") + public Object mul(int num) { + return num * 2 ; + } + + @RequestMapping("/object") + public String object(HttpServletRequest request,HttpServletResponse response) { + System.out.println("*** 客户端IP地址:" + request.getRemoteAddr()); + System.out.println("*** 取得客户端响应编码:" + response.getCharacterEncoding()); + System.out.println("*** 取得SessionID:" + request.getSession().getId()); + System.out.println("*** 取得真实路径:" + request.getServletContext().getRealPath("/upload/")); + return "www.mldn.cn" ; + } + + @RequestMapping("/") + public String home() { + return "www.mldn.cn"; + } +} diff --git a/microboot-base/src/test/java/cn/mldn/microboot/AppTest.java b/microboot-base/src/test/java/cn/mldn/microboot/AppTest.java new file mode 100644 index 0000000..a094258 --- /dev/null +++ b/microboot-base/src/test/java/cn/mldn/microboot/AppTest.java @@ -0,0 +1,38 @@ +package cn.mldn.microboot; + +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/microboot-base/target/classes/META-INF/MANIFEST.MF b/microboot-base/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d4c16dd --- /dev/null +++ b/microboot-base/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: foreveriss +Build-Jdk: 1.8.0_121 +Created-By: Maven Integration for Eclipse + diff --git a/microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.properties b/microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.properties new file mode 100644 index 0000000..e2e2edf --- /dev/null +++ b/microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Thu Jun 29 23:45:00 CST 2017 +version=0.0.1-SNAPSHOT +groupId=cn.mldn +m2e.projectName=microboot-base +m2e.projectLocation=/Users/foreveriss/workspace/microboot/microboot-base +artifactId=microboot-base diff --git a/microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.xml b/microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.xml new file mode 100644 index 0000000..54d1f23 --- /dev/null +++ b/microboot-base/target/classes/META-INF/maven/cn.mldn/microboot-base/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-base + microboot-base + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-base/target/classes/cn/mldn/microboot/StartSpringBootMain.class b/microboot-base/target/classes/cn/mldn/microboot/StartSpringBootMain.class new file mode 100644 index 0000000000000000000000000000000000000000..57c4fbaf2659605d5935cf7e2b1e486fb9e1eec0 GIT binary patch literal 766 zcma)4&2AGh5dNH|-DDeRNuad+RXrd=4){{_5>yE)IBh{9C>%IBuDf;FwIjz1eXX8a z^}qx0P*ukcB021V%Zz8n`hLd#b9?g}z&>^pG#Fk=!^`4?f|kxsto3~4h4Z7S(KQg5GLoJC+A9fhPAiaXn)AC(tkZ>Xdc-Um0|_$4pydF8@7mWZew#=)y_IW4DGgG@$8wsKN^)M2;VH81xjIA_@T zQW>vHHP$m7h>Wp58Y1MwT7A*KsJtbiQJ~_BKd~fqh&|9k=t}_&I?=mROsL|N8RgZ% z60P@itKm(W_+ T!4v8?@HEC}cuqO6z5wn3K5WP# literal 0 HcmV?d00001 diff --git a/microboot-base/target/classes/cn/mldn/microboot/controller/HelloController.class b/microboot-base/target/classes/cn/mldn/microboot/controller/HelloController.class new file mode 100644 index 0000000000000000000000000000000000000000..01c30e62cfecb5d11c8e356657f53b908136de4e GIT binary patch literal 2495 zcmb7G*;5=v9R8YXHZTd{%mGG-CIJGBCy8!62q9sW1Y{!`<2Ae6><*b@Gt&!LlvP;e zgD;j^TCvKCNBL@15`6%PDc<$pNUiwhe_;9Ro(a3a8sw#Sx_`&_{jTo)fX zLlr}R+BFKg zmTQR@8LE4Frx|KSybP~LHTLMJMIA%qxaIOo1t-P*%Vx^v49(+S+O(%l-;(?2utwyp zfMIZaH=N>x$J05F;dsw@iCR+lmYa?DZa-o;G*xhgfomq-k?bEaLO*cuJV$5?cD5SUs1 zA?3&6BIjioPVL&eG9>5K7e+5L9No-((v%DZ_cw(w^uIwSO_6(01H#ZE#u_>p4s6Zk z*@9(fxF5qK4E6VyJ|7(!o4CL9MLiDVQCa6MhPFx-n3ftxbv%a0DHD_}?ouWODyeQO zR)iUsE{^LsfgXmK@WSFUwDwf2Z?zL-Ws7Z%K&H_t*pg?W+%RlolGYd`u7`mqH9W!4 zRC17T1#F}%!hu&=MLt9a|jKR;Pn|LJyOvUu}O@!O@p?|svNvpA<=gyEP>(Zi^!8PPE+ zE4Mex#T0iu!G|*$zaAHm&@jf(qVl|%fsR*XM`>~ph3&>LPTjBge0HO__Vos<;+LNm z?|!v@@5cHMA1P*+FsWgJZiAheg-O)$nxxiB)JAeNPHCE^Q8(>nXr^OGQiV&PNg8On zB@*YN6uhou8gI}vkZ~jAbaj>3 ztl#{;cQ8W|c0aEhC@yij7eMhElr^MmqT8BDuWML)bN8BXlj+p1xxYhykS zE5xw#+(ZLG6P)uLx`LTORY`gUKh4iu^1W%@@{$e8pmulL2cq;4#?cKLAbLkZHy>39 zb+l@!hnK_lT5;B9ksb%F}T%vOPOJ&ksW4uWVXR`9A&g}i=O2h(B~kw>E>;jtg;w-NuHwxK@^?b{dlXrE6}+nCym_`1 zP&-vpmZ5_ZJVbBKG<_|gQw7)+(%cAe5jGqO5Lko@k3wX~qo-o1*Hx$kDjh&|Ib_%w W-DRCo9YIvVC+AfNRAHo^0R9C@2BUib literal 0 HcmV?d00001 diff --git a/microboot-base/target/test-classes/cn/mldn/microboot/AppTest.class b/microboot-base/target/test-classes/cn/mldn/microboot/AppTest.class new file mode 100644 index 0000000000000000000000000000000000000000..d317ee0ba6e633124e836a6386d4dfc23cce4a92 GIT binary patch literal 621 zcmZ`$O-sW-5PjRGO&jA^Y_+w1ASkpI%t3DzK?+J);33hel80v0dPyA~N!j<7D3}gHJ;bGuKu?~%)HckQ& z+c%O=yr)p!+Y0IO$YUs;3WClUs!eCiAGz)G;MVTPQUtf1){sH#hS#2fJjx~tC^9TN zBJg_2WaP;KANizVIibt_A(uks*`pTUiHM=${A;blP>RV&k6bB{KkXR`Q6gdjYt5E3 zZ-$PJHJW}N)K`@TEL4^6b%x5%0lPkrqI5o8S)gSxs<&nx0&tuNIAzImFDT6fFe0Zk)lr78FF-hV*7B4(hGg%U{EyD*9tMK zSfG4;#)64O%7~98ER#kVD_G66+F1wV9oD7Arl>pI0b8k->c_BwT2^;Vw?Yfr XE9$>3>_fvrT4v5jnFWUJRD9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/microboot-email/.project b/microboot-email/.project new file mode 100644 index 0000000..5edc880 --- /dev/null +++ b/microboot-email/.project @@ -0,0 +1,35 @@ + + + microboot-email + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/microboot-email/.settings/org.eclipse.core.resources.prefs b/microboot-email/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..a6dcfb7 --- /dev/null +++ b/microboot-email/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/main/view=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/microboot-email/.settings/org.eclipse.jdt.core.prefs b/microboot-email/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/microboot-email/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/microboot-email/.settings/org.eclipse.m2e.core.prefs b/microboot-email/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/microboot-email/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/microboot-email/.settings/org.eclipse.wst.common.project.facet.core.xml b/microboot-email/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..e822977 --- /dev/null +++ b/microboot-email/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/microboot-email/pom.xml b/microboot-email/pom.xml new file mode 100644 index 0000000..f9ae343 --- /dev/null +++ b/microboot-email/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-email + microboot-email + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-mail + + + + ch.qos.logback + logback-core + + + + org.springframework.kafka + spring-kafka + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-email/src/main/java/cn/mldn/microboot/StartSpringBootMain.java b/microboot-email/src/main/java/cn/mldn/microboot/StartSpringBootMain.java new file mode 100644 index 0000000..8a58ff5 --- /dev/null +++ b/microboot-email/src/main/java/cn/mldn/microboot/StartSpringBootMain.java @@ -0,0 +1,15 @@ +package cn.mldn.microboot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描 +public class StartSpringBootMain { + static { + System.setProperty("java.security.auth.login.config", + "d:/kafka_client_jaas.conf"); // 表示系统环境属性 + } + public static void main(String[] args) throws Exception { + SpringApplication.run(StartSpringBootMain.class, args); + } +} diff --git a/microboot-email/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java b/microboot-email/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java new file mode 100644 index 0000000..5127e93 --- /dev/null +++ b/microboot-email/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java @@ -0,0 +1,15 @@ +package cn.mldn.microboot.util.controller; + +import java.util.Locale; + +import javax.annotation.Resource; + +import org.springframework.context.MessageSource; + +public abstract class AbstractBaseController { + @Resource + private MessageSource messageSource; // 自动注入此资源对象 + public String getMessage(String key, String... args) { + return this.messageSource.getMessage(key, args, Locale.getDefault()); + } +} diff --git a/microboot-email/src/main/java/cn/mldn/microboot/vo/Dept.java b/microboot-email/src/main/java/cn/mldn/microboot/vo/Dept.java new file mode 100644 index 0000000..7971469 --- /dev/null +++ b/microboot-email/src/main/java/cn/mldn/microboot/vo/Dept.java @@ -0,0 +1,25 @@ +package cn.mldn.microboot.vo; + +import java.io.Serializable; + +@SuppressWarnings("serial") +public class Dept implements Serializable { + private Long deptno ; + private String dname ; + public Long getDeptno() { + return deptno; + } + public void setDeptno(Long deptno) { + this.deptno = deptno; + } + public String getDname() { + return dname; + } + public void setDname(String dname) { + this.dname = dname; + } + @Override + public String toString() { + return "Dept [deptno=" + deptno + ", dname=" + dname + "]"; + } +} diff --git a/microboot-email/src/main/java/cn/mldn/microboot/vo/Member.java b/microboot-email/src/main/java/cn/mldn/microboot/vo/Member.java new file mode 100644 index 0000000..f6a9cd8 --- /dev/null +++ b/microboot-email/src/main/java/cn/mldn/microboot/vo/Member.java @@ -0,0 +1,44 @@ +package cn.mldn.microboot.vo; + +import java.io.Serializable; +import java.util.Date; + +@SuppressWarnings("serial") +public class Member implements Serializable { + private Long mid ; + private String name ; + private Integer age ; + private Date birthday ; + private Double salary ; + public Long getMid() { + return mid; + } + public void setMid(Long mid) { + this.mid = mid; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public Integer getAge() { + return age; + } + public void setAge(Integer age) { + this.age = age; + } + public Date getBirthday() { + return birthday; + } + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + public Double getSalary() { + return salary; + } + public void setSalary(Double salary) { + this.salary = salary; + } +} + diff --git a/microboot-email/src/main/java/数据库创建脚本.sql b/microboot-email/src/main/java/数据库创建脚本.sql new file mode 100644 index 0000000..edd35b2 --- /dev/null +++ b/microboot-email/src/main/java/数据库创建脚本.sql @@ -0,0 +1,13 @@ +DROP DATBASE IF EXISTS mldn ; +CREATE DATBASE mldn CHARACTER SET UTF8 ; +USE mldn ; +CREATE TABLE dept ( + deptno BIGINT AUTO_INCREMENT , + dname VARCHAR(50) , + CONSTRAINT pk_deptno PRIMARY KEY(deptno) +) ; +INSERT INTO dept(dname) VALUES ('开发部') ; +INSERT INTO dept(dname) VALUES ('财务部') ; +INSERT INTO dept(dname) VALUES ('市场部') ; +INSERT INTO dept(dname) VALUES ('后勤部') ; +INSERT INTO dept(dname) VALUES ('公关部') ; \ No newline at end of file diff --git a/microboot-email/src/main/resources/application.yml b/microboot-email/src/main/resources/application.yml new file mode 100644 index 0000000..4a5738c --- /dev/null +++ b/microboot-email/src/main/resources/application.yml @@ -0,0 +1,11 @@ +spring: + messages: + basename: i18n/Messages,i18n/Pages + mail: + host: smtp.qq.com + username: 你自己的用户名,110@qq.com + password: xxxxx + properties: + mail.smtp.auth: true + mail.smtp.starttls.enable: true + mail.smtp.starttls.required: true diff --git a/microboot-email/src/main/resources/i18n/Messages.properties b/microboot-email/src/main/resources/i18n/Messages.properties new file mode 100644 index 0000000..83d9229 --- /dev/null +++ b/microboot-email/src/main/resources/i18n/Messages.properties @@ -0,0 +1,2 @@ +welcome.url=www.mldn.cn +welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01 \ No newline at end of file diff --git a/microboot-email/src/main/resources/i18n/Pages.properties b/microboot-email/src/main/resources/i18n/Pages.properties new file mode 100644 index 0000000..7acc581 --- /dev/null +++ b/microboot-email/src/main/resources/i18n/Pages.properties @@ -0,0 +1,2 @@ +member.add.page=/pages/back/admin/member/member_add.jsp +member.add.action=/pages/back/admin/member/member_add.action \ No newline at end of file diff --git a/microboot-email/src/main/resources/logback.xml b/microboot-email/src/main/resources/logback.xml new file mode 100644 index 0000000..1f01e35 --- /dev/null +++ b/microboot-email/src/main/resources/logback.xml @@ -0,0 +1,43 @@ + + + + + + + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + + ${LOG_HOME}/${APP}_detail.log + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + ${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd} + + + + ${LOG_HOME}/${APP}_access.log + + %d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n + + + ${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microboot-email/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml b/microboot-email/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml new file mode 100644 index 0000000..6557a3a --- /dev/null +++ b/microboot-email/src/main/resources/mybatis/mapper/cn/mldn/Dept.xml @@ -0,0 +1,11 @@ + + + + + + INSERT INTO dept(dname) VALUES (#{dname}) ; + + diff --git a/microboot-email/src/main/resources/mybatis/mybatis.cfg.xml b/microboot-email/src/main/resources/mybatis/mybatis.cfg.xml new file mode 100644 index 0000000..4d128c0 --- /dev/null +++ b/microboot-email/src/main/resources/mybatis/mybatis.cfg.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/microboot-email/src/main/view/static/images/mldn.ico b/microboot-email/src/main/view/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-email/src/main/view/static/info/message_info.html b/microboot-email/src/main/view/static/info/message_info.html new file mode 100644 index 0000000..1b66139 --- /dev/null +++ b/microboot-email/src/main/view/static/info/message_info.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-email/src/main/view/static/js/main.js b/microboot-email/src/main/view/static/js/main.js new file mode 100644 index 0000000..c8ae7c9 --- /dev/null +++ b/microboot-email/src/main/view/static/js/main.js @@ -0,0 +1,3 @@ +window.onload = function() { + console.log("****** www.mldn.cn ******") ; +} \ No newline at end of file diff --git a/microboot-email/src/main/view/static/message_index.html b/microboot-email/src/main/view/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-email/src/main/view/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-email/src/main/view/templates/upload_page.html b/microboot-email/src/main/view/templates/upload_page.html new file mode 100644 index 0000000..5f71423 --- /dev/null +++ b/microboot-email/src/main/view/templates/upload_page.html @@ -0,0 +1,21 @@ + + + + SpringBoot模版渲染 + + + + + +
+ 姓名:
+ 照片:
+ 照片:
+ 照片:
+ +
+ 查看照片 + 查看照片 + 查看照片 + + \ No newline at end of file diff --git a/microboot-email/src/main/view/templates/upload_show.html b/microboot-email/src/main/view/templates/upload_show.html new file mode 100644 index 0000000..0e86d94 --- /dev/null +++ b/microboot-email/src/main/view/templates/upload_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + + + + + \ No newline at end of file diff --git a/microboot-email/src/test/java/cn/mldn/microboot/TestMail.java b/microboot-email/src/test/java/cn/mldn/microboot/TestMail.java new file mode 100644 index 0000000..be9a0bc --- /dev/null +++ b/microboot-email/src/test/java/cn/mldn/microboot/TestMail.java @@ -0,0 +1,25 @@ +package cn.mldn.microboot; +import javax.annotation.Resource; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; +@SpringBootTest(classes = StartSpringBootMain.class) +@RunWith(SpringJUnit4ClassRunner.class) +@WebAppConfiguration +public class TestMail { + @Resource + private JavaMailSender javaMailSender ; + @Test + public void testSendMail() { + SimpleMailMessage message = new SimpleMailMessage() ; // 要发送的消息内容 + message.setFrom("你自己的邮箱地址,110@qq.com"); + message.setTo("接收者的邮箱地址,220@qq.com"); + message.setSubject("测试邮件(来自老李的祝福,www.mldn.cn)"); + message.setText("好好学习,天天向上,学习就登录www.mldn.cn"); + this.javaMailSender.send(message); + } +} diff --git a/microboot-email/target/classes/META-INF/MANIFEST.MF b/microboot-email/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d4c16dd --- /dev/null +++ b/microboot-email/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: foreveriss +Build-Jdk: 1.8.0_121 +Created-By: Maven Integration for Eclipse + diff --git a/microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.properties b/microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.properties new file mode 100644 index 0000000..fb95e4e --- /dev/null +++ b/microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Thu Jun 29 23:45:01 CST 2017 +version=0.0.1-SNAPSHOT +groupId=cn.mldn +m2e.projectName=microboot-email +m2e.projectLocation=/Users/foreveriss/workspace/microboot/microboot-email +artifactId=microboot-email diff --git a/microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.xml b/microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.xml new file mode 100644 index 0000000..f9ae343 --- /dev/null +++ b/microboot-email/target/classes/META-INF/maven/cn.mldn/microboot-email/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-email + microboot-email + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-mail + + + + ch.qos.logback + logback-core + + + + org.springframework.kafka + spring-kafka + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-email/target/classes/application.yml b/microboot-email/target/classes/application.yml new file mode 100644 index 0000000..4a5738c --- /dev/null +++ b/microboot-email/target/classes/application.yml @@ -0,0 +1,11 @@ +spring: + messages: + basename: i18n/Messages,i18n/Pages + mail: + host: smtp.qq.com + username: 你自己的用户名,110@qq.com + password: xxxxx + properties: + mail.smtp.auth: true + mail.smtp.starttls.enable: true + mail.smtp.starttls.required: true diff --git a/microboot-email/target/classes/cn/mldn/microboot/StartSpringBootMain.class b/microboot-email/target/classes/cn/mldn/microboot/StartSpringBootMain.class new file mode 100644 index 0000000000000000000000000000000000000000..18bb1955fe178fdb5f9decc54eb43cd0e8970e03 GIT binary patch literal 1017 zcma)5OLG!I5dMY`SQa!9G$y`c)EMBvUevNAl`2i?2_F?KJa|YA%RmN}8ESS`!_V?$ z%7Z_^A7$CIqy!5NUV5g#o_>7YJ->ec_zB<%>Um@s_CpnnqaFzv8r{{}25rlYZBL9; zgIA=#6Dzff^SH}UnREJU@v)1& zJnl2pwHX9)I;g(kWARm+Q7{`}3cj37A{lZQu7n48NJBCSr4JW-H5+AfRY9#)@o9Qi zoZH|yonm5KhZYhM?97fUHv?);WkqBn+SZ8)#T)6`y}e@N8jd+F$VsBC9E*;OrAwrg zwkaWse6+H@ls|2oo~>D8L@?jwg+iOy12u%c0!VsTM~?J7X-|Ks^cWbt_y=c9La^xR@ zgv8^(58y{3#%t3?Y9tVs8O^t|-^_e7KYxAy0pK2P`)DxSk20PnyJS>kbf~rEg;fcU zbY_iC5^4B)m|G(v`$Xh&;|TWQG0g3Yw}K}ki}_Z#FC)v)PGz2pSnlY;M3P}`s7=iC zH%4Xgo)M{hr_F(*mxq>bjwcTombQz`s#K0tuEIpFXPLIbDxKvF-ChGwrnV(>Qfu56)+c7PeQ7&=3h$rnW$O7l_>HN*T+McC@0O(A3JKSw8)s;g>XG*;D*Y+)4f1pmWM?Vj zx#!bl%Vbbmhip(KU=C*}`aqg25K?~Lgy#x%RzG8L?ao)6`-V#%KGIVI d$24t6vs|UtG$3pR*Bo^R*Kx!3b<_R4^&1L!^-KT& literal 0 HcmV?d00001 diff --git a/microboot-email/target/classes/cn/mldn/microboot/vo/Dept.class b/microboot-email/target/classes/cn/mldn/microboot/vo/Dept.class new file mode 100644 index 0000000000000000000000000000000000000000..46f2356a3ca2161724fed86b30fdd27cc74cd2c6 GIT binary patch literal 1128 zcmZ`%%Wl&^6g`vXY1}qAX-Y|fi3{Cis&M!5<)DTcoe2`Jdx{k!B>F< zsRR-qz(*nOj16(DRF>y)=iGD8Ju|=m{P+dn2+s=0Fl-Hdd+fP1h+!ZHQik@0v|sZ{ zSU{GceCAv@w&(aG`($v&hZM~-RCQEHyUzpRc;d4&@Hj)>r8HksR&Soxlm4j7kaK-! zOc*P1)DHup5A)B3FT!Jnl~((dA^S?Y+`tOfO)uyc+N~hIoC*)|QB`|E7D4!3_mx>Y zYSl8)Mu+ahnM}CvG8`o9MfccEcD_L0En=V4?l<&}Y3f5oXs3Ao=}!2P=6S@xJ}N~| zOf*nuF#2*D4EYLTIb`S~^XY|Vlx;NUDNe6|##P$cG&7oWolC5J z)v$65Qqb$PR!{=KLWO2}t=OP(G5H&6U+6G{d9txI`3AP)` z!3u#fuSBVSlz p``)^HiDrkanc;!8H^Tv~w`sB-(lEp0w9w6j(B^-;kF>8({{koD&gB3A literal 0 HcmV?d00001 diff --git a/microboot-email/target/classes/cn/mldn/microboot/vo/Member.class b/microboot-email/target/classes/cn/mldn/microboot/vo/Member.class new file mode 100644 index 0000000000000000000000000000000000000000..59c00d58c162bb9e253a3c32c6804c866f696696 GIT binary patch literal 1566 zcmaKr+iu!G5QcvP!2#SHI3>-gX_BTuTHFIYSCN`Vl`4_+f-3h5SY#t(OOA=uK2`WHc;Yh$~^*!Wo#Kx))Z@*OApwR&S+ib}UZ{TYeQ?+tQF8%08vEqnx(u4BlwS zIATcg;zXq5ds4;HVnCtNMChaATLa6Zy!o#5{PVu}a^pJkrEMMy-=b*tQrNWj7dL@BEN94Oy_j(KJdb){Nd#*{kQoT^@xr+mV0vD2=B9P%V3 zr$Abnv>gJJY}|ERdMk zBJsG?NXv#fGVFvGI9+Ubg>3lDz#^7NOon6eRJoy+4f7p$-&ct6u6@q2ERz zz$$LjlZG{{(>k4ejg4=yP(9U?Vy@uih?GMMdRM4OHRrjK*~` z^|q=%4zd#mDJO#L;a(ERP8?)~KvrjfaHAPyANNDAsGZlS#X;5*K^izn0;$D8HVI^F z1_<9YgFL{)1dwJNWIGY$5gsRjG~*z<1hO{+gh!1*p5SQ$NGlGqp9u0CFOoo7agaKJ QG-iPCtTV_ + + + + + + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + + ${LOG_HOME}/${APP}_detail.log + + %d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n + + + ${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd} + + + + ${LOG_HOME}/${APP}_access.log + + %d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n + + + ${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microboot-email/target/classes/mybatis/mapper/cn/mldn/Dept.xml b/microboot-email/target/classes/mybatis/mapper/cn/mldn/Dept.xml new file mode 100644 index 0000000..6557a3a --- /dev/null +++ b/microboot-email/target/classes/mybatis/mapper/cn/mldn/Dept.xml @@ -0,0 +1,11 @@ + + + + + + INSERT INTO dept(dname) VALUES (#{dname}) ; + + diff --git a/microboot-email/target/classes/mybatis/mybatis.cfg.xml b/microboot-email/target/classes/mybatis/mybatis.cfg.xml new file mode 100644 index 0000000..4d128c0 --- /dev/null +++ b/microboot-email/target/classes/mybatis/mybatis.cfg.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/microboot-email/target/classes/static/images/mldn.ico b/microboot-email/target/classes/static/images/mldn.ico new file mode 100644 index 0000000000000000000000000000000000000000..da399ba37e05ef1b2f1dc5004d417102bdd4206f GIT binary patch literal 1406 zcmbu-U2Icj7zgnGJ7moHPB$sw7X{tau3a70Av#Mt{3sIz{8&}MMiXyXvc@apO*5~` ztxKkn*);PbLNbjc+BQ<7BqgXMv=~Cq+Un@qZEd$TTf;uG@7I6pjW=BRo;;`TdHXxh zd7tMTK=7!q2hTM)xf$3Fz`)=Vb~DQB<5FgrVoliv>G-3tmGKPuD@D(vtr;8J27 zlarG;{MBE$T2vTJDi}V`j{xRfoIfO22c>j{Z4gPRliPOIhV|jTQb8~Z; zn3zC1orb1q`0N)AAD)Zjy>nS4GI^jhgeDb2r;4CQ#n7ix2&f!j(*Z6$;NcteS%9z= zNIK}9^lo}Dy`MfvAEoE(bTK>(A0y02GD@ItqVJ^dq3@#)Ku52qH_%(?t@I9hC%v2A zOYf%-(nsly^mh6#`fmDO`hNN$`Vf7DK1QFS&(YiHUGyG$AAOiUNzYFUieAwxdPT3w z-bin!@1pOf@1^grvDh`~vs`Y>FxAg^xgEm^!@Zh^db5PeT+UupQE?Y zyXZaiKKd|ylDyN%gh%^Pu*O7c##$!s=>cKM8M+Y_=)7=)=!>=n)O$$eD~vXy%>HSQ6@ARo7gokk{P z?iOKwOx9J4M;>KD(#FQ}P8!6n-SWYQDsx^oJuJ5GsO(VQbMJlkKd@6TYVVM;?#{dF d8}8n!+g8PDH{G_mddsGo+nJSvpU3|i{{U6>-sk`T literal 0 HcmV?d00001 diff --git a/microboot-email/target/classes/static/info/message_info.html b/microboot-email/target/classes/static/info/message_info.html new file mode 100644 index 0000000..1b66139 --- /dev/null +++ b/microboot-email/target/classes/static/info/message_info.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-email/target/classes/static/js/main.js b/microboot-email/target/classes/static/js/main.js new file mode 100644 index 0000000..c8ae7c9 --- /dev/null +++ b/microboot-email/target/classes/static/js/main.js @@ -0,0 +1,3 @@ +window.onload = function() { + console.log("****** www.mldn.cn ******") ; +} \ No newline at end of file diff --git a/microboot-email/target/classes/static/message_index.html b/microboot-email/target/classes/static/message_index.html new file mode 100644 index 0000000..af5e4d0 --- /dev/null +++ b/microboot-email/target/classes/static/message_index.html @@ -0,0 +1,10 @@ + + + + SpringBoot模版渲染 + + + +

www.mldn.cn

+ + \ No newline at end of file diff --git a/microboot-email/target/classes/templates/upload_page.html b/microboot-email/target/classes/templates/upload_page.html new file mode 100644 index 0000000..5f71423 --- /dev/null +++ b/microboot-email/target/classes/templates/upload_page.html @@ -0,0 +1,21 @@ + + + + SpringBoot模版渲染 + + + + + +
+ 姓名:
+ 照片:
+ 照片:
+ 照片:
+ +
+ 查看照片 + 查看照片 + 查看照片 + + \ No newline at end of file diff --git a/microboot-email/target/classes/templates/upload_show.html b/microboot-email/target/classes/templates/upload_show.html new file mode 100644 index 0000000..0e86d94 --- /dev/null +++ b/microboot-email/target/classes/templates/upload_show.html @@ -0,0 +1,12 @@ + + + + SpringBoot模版渲染 + + + + + + + + \ No newline at end of file diff --git a/microboot-email/target/test-classes/cn/mldn/microboot/TestMail.class b/microboot-email/target/test-classes/cn/mldn/microboot/TestMail.class new file mode 100644 index 0000000000000000000000000000000000000000..1be632eb8e2eb1971fa3f7d589b480e28c7c8806 GIT binary patch literal 1473 zcmb7EU2hXd6g^`SY{Di`lLSbB(ho{vQ*ROi1x#tvNIW1@B%B5zp4OYeZ0g+&yKBs2 zKvewzK`X%nsFCtOkctE)QgNV3_yPSLv7J8UA5=ZF2@pgqgtVGFbNAjeXYQOk|NQs& z3jqE2DvF3ehw12cVT6NadT!2j1AR#P!AZj^MA0CydDOUM=mo>c>!)&~(hLMzluHF< zr86Qufxe9E<#m6|vz+{S&#-05^}g3_M(8RuoSb+gCoQo3bkPYcTMk>kl`F^r$8iHA zuw2I%=*+0R%ewK(sh^gFiWDr^)o^eg1Fl>01TCX@8f(sV++L5VW0dA%RtcE(MIxx!-9(A-x0%4ufQM3sp z>YhJq*<%H%a!*R%H}WLfisl%$3G7*zpIrR$VP$5zcJJE1S0C3NPgj0_QkfWEn!C~4 z+w=9siz(B!ReXnrPV5kf`Z74~xwb%CS6HFtd&vf>@agX17^(HQ}gP3^kCunBr_}b|4`qrzb!obMJ+>r z<;isI?rdfL&MI65n$VDZdGH~5IoJS!&owk+{YL2MjiN`Or*7@*Xiq~Q_ER=KFI7PA zsxRKRE{`?lE!fL9DX{N-Qdyd8sNmz4l4SGCE=wtz0teT`3j0whP&ZvCUFMmoGgfecKN~L@g(4XatjXvN zGGQO|uW&l?9h;(mP_ZExF^P5L-54dA)6dAzudpMK62>($pq9oG+C?MBO-T zlq+Rpv=Lf%JI9S&>9m5jF);&eI{e+jQ3V6d*u+s=4!~x7z!l#FCP!XDZlO;BmFSDm zCTG!lb_VU4WPEEG+mrE~Wqg>7e_Y0=$@tzfx)Xn4U-CIp5xm}RR|pp;zb$B?d|T0m z4zy!8wjzOTA&vHB_!Sy#I=;jQNGF1W+%|$QLX1wH{1Cl|&q0_tf;8txO?-)C!2kKo B!(0FW literal 0 HcmV?d00001 diff --git a/microboot-error/.classpath b/microboot-error/.classpath new file mode 100644 index 0000000..a6f04e8 --- /dev/null +++ b/microboot-error/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/microboot-error/.project b/microboot-error/.project new file mode 100644 index 0000000..17e6874 --- /dev/null +++ b/microboot-error/.project @@ -0,0 +1,35 @@ + + + microboot-error + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/microboot-error/.settings/org.eclipse.core.resources.prefs b/microboot-error/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..a6dcfb7 --- /dev/null +++ b/microboot-error/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/main/view=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/microboot-error/.settings/org.eclipse.jdt.core.prefs b/microboot-error/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/microboot-error/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/microboot-error/.settings/org.eclipse.m2e.core.prefs b/microboot-error/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/microboot-error/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/microboot-error/.settings/org.eclipse.wst.common.project.facet.core.xml b/microboot-error/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..e822977 --- /dev/null +++ b/microboot-error/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/microboot-error/pom.xml b/microboot-error/pom.xml new file mode 100644 index 0000000..8be6ac4 --- /dev/null +++ b/microboot-error/pom.xml @@ -0,0 +1,52 @@ + + + 4.0.0 + + cn.mldn + microboot + 0.0.1-SNAPSHOT + + microboot-error + microboot-error + http://maven.apache.org + + UTF-8 + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + spring-boot-starter-jetty + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + test + + + org.springframework + springloaded + + + org.springframework.boot + spring-boot-devtools + + + + diff --git a/microboot-error/src/main/java/cn/mldn/microboot/StartSpringBootMain.java b/microboot-error/src/main/java/cn/mldn/microboot/StartSpringBootMain.java new file mode 100644 index 0000000..9b39a0d --- /dev/null +++ b/microboot-error/src/main/java/cn/mldn/microboot/StartSpringBootMain.java @@ -0,0 +1,14 @@ +package cn.mldn.microboot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; +import org.springframework.context.annotation.ComponentScan; +@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描 +@ComponentScan("cn.mldn.microboot") +public class StartSpringBootMain { + + public static void main(String[] args) throws Exception { + SpringApplication.run(StartSpringBootMain.class, args); + } +} diff --git a/microboot-error/src/main/java/cn/mldn/microboot/advice/GlobalExceptionHandler.java b/microboot-error/src/main/java/cn/mldn/microboot/advice/GlobalExceptionHandler.java new file mode 100644 index 0000000..1214c4b --- /dev/null +++ b/microboot-error/src/main/java/cn/mldn/microboot/advice/GlobalExceptionHandler.java @@ -0,0 +1,50 @@ +package cn.mldn.microboot.advice; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +//@ControllerAdvice// 作为一个控制层的切面处理 +@RestControllerAdvice +public class GlobalExceptionHandler { + public static final String DEFAULT_ERROR_VIEW = "error"; // 定义错误显示页,error.html + @ExceptionHandler(Exception.class) // 所有的异常都是Exception子类 + public Object defaultErrorHandler(HttpServletRequest request,Exception e) { + class ErrorInfo { + private Integer code ; + private String message ; + private String url ; + public Integer getCode() { + return code; + } + public void setCode(Integer code) { + this.code = code; + } + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + } + ErrorInfo info = new ErrorInfo() ; + info.setCode(100); // 标记一个错误信息类型 + info.setMessage(e.getMessage()); + info.setUrl(request.getRequestURL().toString()); + return info ; + } +// public ModelAndView defaultErrorHandler(HttpServletRequest request, +// Exception e) { // 出现异常之后会跳转到此方法 +// ModelAndView mav = new ModelAndView(DEFAULT_ERROR_VIEW); // 设置跳转路径 +// mav.addObject("exception", e); // 将异常对象传递过去 +// mav.addObject("url", request.getRequestURL()); // 获得请求的路径 +// return mav; +// } +} diff --git a/microboot-error/src/main/java/cn/mldn/microboot/config/ErrorPageConfig.java b/microboot-error/src/main/java/cn/mldn/microboot/config/ErrorPageConfig.java new file mode 100644 index 0000000..0a02b4b --- /dev/null +++ b/microboot-error/src/main/java/cn/mldn/microboot/config/ErrorPageConfig.java @@ -0,0 +1,29 @@ +package cn.mldn.microboot.config; + +import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; +import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; +import org.springframework.boot.web.servlet.ErrorPage; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpStatus; + +@Configuration +public class ErrorPageConfig { + //@Bean +// public EmbeddedServletContainerCustomizer containerCustomizer() { +// return new EmbeddedServletContainerCustomizer() { +// @Override +// public void customize( +// ConfigurableEmbeddedServletContainer container) { +// ErrorPage errorPage400 = new ErrorPage(HttpStatus.BAD_REQUEST, +// "/error-400.html"); +// ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND, +// "/error-404.html"); +// ErrorPage errorPage500 = new ErrorPage( +// HttpStatus.INTERNAL_SERVER_ERROR, "/error-500.html"); +// container.addErrorPages(errorPage400, errorPage404, +// errorPage500); +// } +// }; +// } +} diff --git a/microboot-error/src/main/java/cn/mldn/microboot/controller/MemberController.java b/microboot-error/src/main/java/cn/mldn/microboot/controller/MemberController.java new file mode 100644 index 0000000..00c719c --- /dev/null +++ b/microboot-error/src/main/java/cn/mldn/microboot/controller/MemberController.java @@ -0,0 +1,29 @@ +package cn.mldn.microboot.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import cn.mldn.microboot.util.controller.AbstractBaseController; +import cn.mldn.microboot.vo.Member; + +@Controller +public class MemberController extends AbstractBaseController { + @RequestMapping(value="/get") + @ResponseBody + public String get() { + System.out.println("除法计算:" + (10 / 0)); + return "hello world" ; + } + + @RequestMapping(value = "/add", method = RequestMethod.POST) + @ResponseBody + public Object add(Member vo) { // 增加前的准备操作路径 + return vo; + } + @RequestMapping(value = "/addPre", method = RequestMethod.GET) + public String addPre() { // 增加前的准备操作路径 + return "member_add"; + } +} diff --git a/microboot-error/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java b/microboot-error/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java new file mode 100644 index 0000000..93c1b2c --- /dev/null +++ b/microboot-error/src/main/java/cn/mldn/microboot/util/controller/AbstractBaseController.java @@ -0,0 +1,27 @@ +package cn.mldn.microboot.util.controller; + +import java.text.SimpleDateFormat; +import java.util.Locale; + +import javax.annotation.Resource; + +import org.springframework.beans.propertyeditors.CustomDateEditor; +import org.springframework.context.MessageSource; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; + +public abstract class AbstractBaseController { + @Resource + private MessageSource messageSource; // 自动注入此资源对象 + public String getMessage(String key, String... args) { + return this.messageSource.getMessage(key, args, Locale.getDefault()); + } + @InitBinder + public void initBinder(WebDataBinder binder) { // 在本程序里面需要针对于日期格式进行处理 + // 首先建立一个可以将字符串转换为日期的工具程序类 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ; + // 明确的描述此时需要注册一个日期格式的转化处理程序类 + binder.registerCustomEditor(java.util.Date.class, new CustomDateEditor(sdf, true)); + } + +} diff --git a/microboot-error/src/main/java/cn/mldn/microboot/vo/Member.java b/microboot-error/src/main/java/cn/mldn/microboot/vo/Member.java new file mode 100644 index 0000000..d3ac3ad --- /dev/null +++ b/microboot-error/src/main/java/cn/mldn/microboot/vo/Member.java @@ -0,0 +1,41 @@ +package cn.mldn.microboot.vo; + +import java.io.Serializable; +import java.util.Date; + +@SuppressWarnings("serial") +public class Member implements Serializable { + private String mid; + private Integer age; + private Double salary; + private Date birthday; + public String getMid() { + return mid; + } + public void setMid(String mid) { + this.mid = mid; + } + public Integer getAge() { + return age; + } + public void setAge(Integer age) { + this.age = age; + } + public Double getSalary() { + return salary; + } + public void setSalary(Double salary) { + this.salary = salary; + } + public Date getBirthday() { + return birthday; + } + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + @Override + public String toString() { + return "Member [mid=" + mid + ", age=" + age + ", salary=" + salary + + ", birthday=" + birthday + "]"; + } +} diff --git a/microboot-error/src/main/resources/application.yml b/microboot-error/src/main/resources/application.yml new file mode 100644 index 0000000..f133cf8 --- /dev/null +++ b/microboot-error/src/main/resources/application.yml @@ -0,0 +1,2 @@ +server: + port: 80 \ No newline at end of file diff --git a/microboot-error/src/main/resources/i18n/Messages.properties b/microboot-error/src/main/resources/i18n/Messages.properties new file mode 100644 index 0000000..83d9229 --- /dev/null +++ b/microboot-error/src/main/resources/i18n/Messages.properties @@ -0,0 +1,2 @@ +welcome.url=www.mldn.cn +welcome.msg=\u6b22\u8fce{0}\u5149\u4e34\uff01 \ No newline at end of file diff --git a/microboot-error/src/main/resources/i18n/Pages.properties b/microboot-error/src/main/resources/i18n/Pages.properties new file mode 100644 index 0000000..7acc581 --- /dev/null +++ b/microboot-error/src/main/resources/i18n/Pages.properties @@ -0,0 +1,2 @@ +member.add.page=/pages/back/admin/member/member_add.jsp +member.add.action=/pages/back/admin/member/member_add.action \ No newline at end of file diff --git a/microboot-error/src/main/view/static/error-400.html b/microboot-error/src/main/view/static/error-400.html new file mode 100644 index 0000000..b2c0354 --- /dev/null +++ b/microboot-error/src/main/view/static/error-400.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + +

对不起,出现了400错误!

+ + + \ No newline at end of file diff --git a/microboot-error/src/main/view/static/error-404.html b/microboot-error/src/main/view/static/error-404.html new file mode 100644 index 0000000..b8c630a --- /dev/null +++ b/microboot-error/src/main/view/static/error-404.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + +

对不起,出现了404错误!

+ + + \ No newline at end of file diff --git a/microboot-error/src/main/view/static/error-500.html b/microboot-error/src/main/view/static/error-500.html new file mode 100644 index 0000000..5e115ec --- /dev/null +++ b/microboot-error/src/main/view/static/error-500.html @@ -0,0 +1,11 @@ + + + + SpringBoot模版渲染 + + + +

对不起,出现了500错误!

+ + + \ No newline at end of file diff --git a/microboot-error/src/main/view/static/images/dog.jpg b/microboot-error/src/main/view/static/images/dog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..07753f6a6ae77c23bc74f32f1218f85bbdf7a67c GIT binary patch literal 185935 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%0D1({GSjB*Ff%Hr;4$Bj=AuffeQeSZp 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%0A4jrR6RaPh@cLe1wNK8Hr!b?5w?&4j!FR_ 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