├── micro-core ├── src │ └── main │ │ └── resources │ │ └── application.properties ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ ├── maven-wrapper.properties │ │ └── MavenWrapperDownloader.java ├── .gitignore └── pom.xml ├── micro-order ├── src │ └── main │ │ ├── resources │ │ └── application.properties │ │ └── java │ │ └── com │ │ └── micro │ │ └── order │ │ └── OrderApplication.java ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ ├── maven-wrapper.properties │ │ └── MavenWrapperDownloader.java ├── .gitignore └── pom.xml ├── micro-pay ├── src │ └── main │ │ ├── resources │ │ └── application.properties │ │ └── java │ │ └── com │ │ └── micro │ │ └── pay │ │ └── MicroPayApplication.java ├── .gitignore └── pom.xml ├── micro-search ├── src │ └── main │ │ ├── resources │ │ └── application.properties │ │ └── java │ │ └── com │ │ └── micro │ │ └── microsearch │ │ └── MicroSearchApplication.java ├── .gitignore └── pom.xml ├── micro-user ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ ├── maven-wrapper.properties │ │ └── MavenWrapperDownloader.java ├── src │ └── main │ │ ├── java │ │ └── com │ │ │ └── micro │ │ │ └── user │ │ │ └── UserApplication.java │ │ └── resources │ │ └── application.properties ├── .gitignore └── pom.xml ├── micro-common ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ ├── maven-wrapper.properties │ │ └── MavenWrapperDownloader.java ├── .gitignore ├── src │ └── main │ │ └── resources │ │ └── banner.txt └── pom.xml ├── .gitignore ├── pom.xml └── README.md /micro-core/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /micro-order/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /micro-pay/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /micro-search/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /micro-core/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a-pros/micro-mall/HEAD/micro-core/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /micro-order/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a-pros/micro-mall/HEAD/micro-order/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /micro-user/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a-pros/micro-mall/HEAD/micro-user/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /micro-common/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a-pros/micro-mall/HEAD/micro-common/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /micro-core/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /micro-user/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /micro-common/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /micro-order/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /micro-order/src/main/java/com/micro/order/OrderApplication.java: -------------------------------------------------------------------------------- 1 | package com.micro.order; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class OrderApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(OrderApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /micro-pay/src/main/java/com/micro/pay/MicroPayApplication.java: -------------------------------------------------------------------------------- 1 | package com.micro.pay; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class MicroPayApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(MicroPayApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /micro-search/src/main/java/com/micro/microsearch/MicroSearchApplication.java: -------------------------------------------------------------------------------- 1 | package com.micro.microsearch; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class MicroSearchApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(MicroSearchApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /micro-user/src/main/java/com/micro/user/UserApplication.java: -------------------------------------------------------------------------------- 1 | package com.micro.user; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @SpringBootApplication 8 | public class UserApplication { 9 | 10 | public static void main(String[] args) { 11 | SpringApplication.run(UserApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### Maven ### 31 | .idea/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /micro-common/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### Maven ### 31 | .mvn/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /micro-core/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### Maven ### 31 | .mvn/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /micro-order/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### Maven ### 31 | .mvn/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /micro-pay/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### Maven ### 31 | .mvn/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /micro-search/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### Maven ### 31 | .mvn/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /micro-user/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### Maven ### 31 | .mvn/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /micro-user/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=micro 2 | server.port=8081 3 | 4 | spring.datasource.driver-class-name=com.mysql.jdbc.Driver 5 | spring.datasource.url=jdbc:mysql://106.13.140.246:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true 6 | spring.datasource.username=root 7 | spring.datasource.password=123456 8 | spring.datasource.default-auto-commit=true 9 | spring.datasource.auto-commit=true 10 | spring.datasource.maximum-pool-size=10 11 | spring.datasource.max-idle=5 12 | spring.datasource.max-wait=10000 13 | spring.datasource.min-idle=2 14 | spring.datasource.initial-size=3 -------------------------------------------------------------------------------- /micro-search/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.micro 7 | micro-mall 8 | 1.0-v 9 | ../ 10 | 11 | com.micro 12 | micro-search 13 | 1.0-v 14 | micro-search 15 | Micro Mall search Projrct 16 | 17 | 18 | 1.8 19 | 20 | 21 | 22 | 23 | com.micro 24 | micro-core 25 | 1.0-v 26 | 27 | 28 | 29 | 30 | 31 | 32 | org.springframework.boot 33 | spring-boot-maven-plugin 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /micro-order/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.micro 7 | micro-mall 8 | 1.0-v 9 | ../ 10 | 11 | com.micro 12 | micro-order 13 | 1.0-v 14 | micro-order 15 | Micro Mall search Projrct 16 | 17 | 18 | 1.8 19 | 20 | 21 | 22 | 23 | com.micro 24 | micro-core 25 | 1.0-v 26 | 27 | 28 | 29 | 30 | 31 | 32 | org.springframework.boot 33 | spring-boot-maven-plugin 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /micro-pay/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.1.8.RELEASE 9 | 10 | 11 | com.micro 12 | micro-pay 13 | 0.0.1-SNAPSHOT 14 | micro-pay 15 | Micro Mall pay Project 16 | 17 | 18 | 1.8 19 | 20 | 21 | 22 | 23 | org.springframework.boot 24 | spring-boot-starter 25 | 26 | 27 | 28 | org.springframework.boot 29 | spring-boot-starter-test 30 | test 31 | 32 | 33 | 34 | 35 | 36 | 37 | org.springframework.boot 38 | spring-boot-maven-plugin 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /micro-core/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.micro 7 | micro-mall 8 | 1.0-v 9 | ../ 10 | 11 | com.micro 12 | micro-core 13 | 1.0-v 14 | jar 15 | core 16 | Micro Mall core project 17 | 18 | 19 | 1.8 20 | 21 | 22 | 23 | 24 | com.micro 25 | micro-common 26 | 1.0-v 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | org.springframework.boot 39 | spring-boot-maven-plugin 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /micro-user/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.micro 7 | micro-mall 8 | 1.0-v 9 | ../ 10 | 11 | com.micro 12 | micro-user 13 | 1.0-v 14 | user 15 | Micro Mall user Project 16 | 17 | 18 | 1.8 19 | 20 | 21 | 22 | 23 | com.micro 24 | micro-core 25 | 1.0-v 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.springframework.boot 57 | spring-boot-maven-plugin 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.1.8.RELEASE 9 | 10 | 11 | com.micro 12 | micro-mall 13 | 1.0-v 14 | pom 15 | mall 16 | Micro Mall Project 17 | 18 | 19 | micro-core 20 | micro-common 21 | micro-user 22 | micro-order 23 | micro-search 24 | micro-pay 25 | 26 | 27 | 28 | 1.8 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | org.springframework.cloud 39 | spring-cloud-dependencies 40 | Greenwich.RELEASE 41 | pom 42 | import 43 | 44 | 45 | 46 | com.alibaba.cloud 47 | spring-cloud-alibaba-dependencies 48 | 2.1.0.RELEASE 49 | pom 50 | import 51 | 52 | 53 | 54 | 55 | 56 | 57 | maven-ali 58 | http://maven.aliyun.com/nexus/content/groups/public// 59 | 60 | true 61 | 62 | 63 | true 64 | always 65 | fail 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | org.springframework.boot 74 | spring-boot-maven-plugin 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /micro-common/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ${AnsiColor.BRIGHT_YELLOW} _____ _ _ _ _ _ _ _ 2 | ${AnsiColor.BRIGHT_CYAN}| __ \| | | | | | | | | | | | | | 3 | ${AnsiColor.BRIGHT_RED} | |__) | |__ ___ | |_ ___ | |__| | __ _ ___| | ____ _| |_| |__ ___ _ __ 4 | ${AnsiColor.BRIGHT_YELLOW}| ___/| '_ \ / _ \| __/ _ \ | __ |/ _` |/ __| |/ / _` | __| '_ \ / _ \| '_ \ 5 | ${AnsiColor.BRIGHT_MAGENTA} | | | | | | (_) | || (_) | | | | | (_| | (__| < (_| | |_| | | | (_) | | | | 6 | ${AnsiColor.BRIGHT_YELLOW}|_| |_| |_|\___/ \__\___/ |_| |_|\__,_|\___|_|\_\__,_|\__|_| |_|\___/|_| |_| 7 | ${AnsiColor.BRIGHT_YELLOW}//////////////////////////////////////////////////////////////////// 8 | ${AnsiColor.BRIGHT_YELLOW}// _ooOoo_ // 9 | ${AnsiColor.BRIGHT_RED}// o8888888o // 10 | ${AnsiColor.BRIGHT_CYAN}// 88" . "88 // 11 | ${AnsiColor.BRIGHT_MAGENTA}// (| ^_^ |) // 12 | ${AnsiColor.BRIGHT_GREEN}// O\ = /O // 13 | ${AnsiColor.BRIGHT_RED}// ____/`---'\____ // 14 | ${AnsiColor.BRIGHT_CYAN}// .' \\| |// `. // 15 | ${AnsiColor.BRIGHT_MAGENTA}// / \\||| : |||// \ // 16 | ${AnsiColor.BRIGHT_GREEN}// / _||||| -:- |||||- \ // 17 | ${AnsiColor.BRIGHT_YELLOW}// | | \\\ - /// | | // 18 | ${AnsiColor.BRIGHT_GREEN}// | \_| ''\---/'' | | // 19 | ${AnsiColor.BRIGHT_YELLOW}// \ .-\__ `-` ___/-. / // 20 | ${AnsiColor.BRIGHT_CYAN}// ___`. .' /--.--\ `. . ___ // 21 | ${AnsiColor.BRIGHT_RED}// ."" '< `.___\_<|>_/___.' >'"". // 22 | ${AnsiColor.BRIGHT_GREEN}// | | : `- \`.;`\ _ /`;.`/ - ` : | | // 23 | ${AnsiColor.BRIGHT_YELLOW}// \ \ `-. \_ __\ /__ _/ .-` / / // 24 | ${AnsiColor.BRIGHT_CYAN}// ========`-.____`-.___\_____/___.-`____.-'======== // 25 | ${AnsiColor.BRIGHT_MAGENTA}// `=---=' // 26 | ${AnsiColor.BRIGHT_YELLOW}// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // 27 | ${AnsiColor.BRIGHT_GREEN}// 佛祖保佑 永不宕机 永无BUG // 28 | ${AnsiColor.BRIGHT_YELLOW}//////////////////////////////////////////////////////////////////// 29 | ${AnsiColor.BRIGHT_YELLOW}Spring Alibaba Cloud: ${spring-boot.formatted-version} -------------------------------------------------------------------------------- /micro-user/.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- 1 | /* 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | 10 | https://www.apache.org/licenses/LICENSE-2.0 11 | 12 | Unless required by applicable law or agreed to in writing, 13 | software distributed under the License is distributed on an 14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | KIND, either express or implied. See the License for the 16 | specific language governing permissions and limitations 17 | under the License. 18 | */ 19 | 20 | import java.io.File; 21 | import java.io.FileInputStream; 22 | import java.io.FileOutputStream; 23 | import java.io.IOException; 24 | import java.net.URL; 25 | import java.nio.channels.Channels; 26 | import java.nio.channels.ReadableByteChannel; 27 | import java.util.Properties; 28 | 29 | public class MavenWrapperDownloader { 30 | 31 | /** 32 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. 33 | */ 34 | private static final String DEFAULT_DOWNLOAD_URL = 35 | "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; 36 | 37 | /** 38 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to 39 | * use instead of the default one. 40 | */ 41 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH = 42 | ".mvn/wrapper/maven-wrapper.properties"; 43 | 44 | /** 45 | * Path where the maven-wrapper.jar will be saved to. 46 | */ 47 | private static final String MAVEN_WRAPPER_JAR_PATH = 48 | ".mvn/wrapper/maven-wrapper.jar"; 49 | 50 | /** 51 | * Name of the property which should be used to override the default download url for the wrapper. 52 | */ 53 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; 54 | 55 | public static void main(String args[]) { 56 | System.out.println("- Downloader started"); 57 | File baseDirectory = new File(args[0]); 58 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); 59 | 60 | // If the maven-wrapper.properties exists, read it and check if it contains a custom 61 | // wrapperUrl parameter. 62 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); 63 | String url = DEFAULT_DOWNLOAD_URL; 64 | if(mavenWrapperPropertyFile.exists()) { 65 | FileInputStream mavenWrapperPropertyFileInputStream = null; 66 | try { 67 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); 68 | Properties mavenWrapperProperties = new Properties(); 69 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); 70 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); 71 | } catch (IOException e) { 72 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); 73 | } finally { 74 | try { 75 | if(mavenWrapperPropertyFileInputStream != null) { 76 | mavenWrapperPropertyFileInputStream.close(); 77 | } 78 | } catch (IOException e) { 79 | // Ignore ... 80 | } 81 | } 82 | } 83 | System.out.println("- Downloading from: : " + url); 84 | 85 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); 86 | if(!outputFile.getParentFile().exists()) { 87 | if(!outputFile.getParentFile().mkdirs()) { 88 | System.out.println( 89 | "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); 90 | } 91 | } 92 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); 93 | try { 94 | downloadFileFromURL(url, outputFile); 95 | System.out.println("Done"); 96 | System.exit(0); 97 | } catch (Throwable e) { 98 | System.out.println("- Error downloading"); 99 | e.printStackTrace(); 100 | System.exit(1); 101 | } 102 | } 103 | 104 | private static void downloadFileFromURL(String urlString, File destination) throws Exception { 105 | URL website = new URL(urlString); 106 | ReadableByteChannel rbc; 107 | rbc = Channels.newChannel(website.openStream()); 108 | FileOutputStream fos = new FileOutputStream(destination); 109 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 110 | fos.close(); 111 | rbc.close(); 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /micro-common/.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- 1 | /* 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | 10 | https://www.apache.org/licenses/LICENSE-2.0 11 | 12 | Unless required by applicable law or agreed to in writing, 13 | software distributed under the License is distributed on an 14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | KIND, either express or implied. See the License for the 16 | specific language governing permissions and limitations 17 | under the License. 18 | */ 19 | 20 | import java.io.File; 21 | import java.io.FileInputStream; 22 | import java.io.FileOutputStream; 23 | import java.io.IOException; 24 | import java.net.URL; 25 | import java.nio.channels.Channels; 26 | import java.nio.channels.ReadableByteChannel; 27 | import java.util.Properties; 28 | 29 | public class MavenWrapperDownloader { 30 | 31 | /** 32 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. 33 | */ 34 | private static final String DEFAULT_DOWNLOAD_URL = 35 | "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; 36 | 37 | /** 38 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to 39 | * use instead of the default one. 40 | */ 41 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH = 42 | ".mvn/wrapper/maven-wrapper.properties"; 43 | 44 | /** 45 | * Path where the maven-wrapper.jar will be saved to. 46 | */ 47 | private static final String MAVEN_WRAPPER_JAR_PATH = 48 | ".mvn/wrapper/maven-wrapper.jar"; 49 | 50 | /** 51 | * Name of the property which should be used to override the default download url for the wrapper. 52 | */ 53 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; 54 | 55 | public static void main(String args[]) { 56 | System.out.println("- Downloader started"); 57 | File baseDirectory = new File(args[0]); 58 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); 59 | 60 | // If the maven-wrapper.properties exists, read it and check if it contains a custom 61 | // wrapperUrl parameter. 62 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); 63 | String url = DEFAULT_DOWNLOAD_URL; 64 | if (mavenWrapperPropertyFile.exists()) { 65 | FileInputStream mavenWrapperPropertyFileInputStream = null; 66 | try { 67 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); 68 | Properties mavenWrapperProperties = new Properties(); 69 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); 70 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); 71 | } catch (IOException e) { 72 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); 73 | } finally { 74 | try { 75 | if (mavenWrapperPropertyFileInputStream != null) { 76 | mavenWrapperPropertyFileInputStream.close(); 77 | } 78 | } catch (IOException e) { 79 | // Ignore ... 80 | } 81 | } 82 | } 83 | System.out.println("- Downloading from: : " + url); 84 | 85 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); 86 | if (!outputFile.getParentFile().exists()) { 87 | if (!outputFile.getParentFile().mkdirs()) { 88 | System.out.println( 89 | "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); 90 | } 91 | } 92 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); 93 | try { 94 | downloadFileFromURL(url, outputFile); 95 | System.out.println("Done"); 96 | System.exit(0); 97 | } catch (Throwable e) { 98 | System.out.println("- Error downloading"); 99 | e.printStackTrace(); 100 | System.exit(1); 101 | } 102 | } 103 | 104 | private static void downloadFileFromURL(String urlString, File destination) throws Exception { 105 | URL website = new URL(urlString); 106 | ReadableByteChannel rbc; 107 | rbc = Channels.newChannel(website.openStream()); 108 | FileOutputStream fos = new FileOutputStream(destination); 109 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 110 | fos.close(); 111 | rbc.close(); 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /micro-core/.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- 1 | /* 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | 10 | https://www.apache.org/licenses/LICENSE-2.0 11 | 12 | Unless required by applicable law or agreed to in writing, 13 | software distributed under the License is distributed on an 14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | KIND, either express or implied. See the License for the 16 | specific language governing permissions and limitations 17 | under the License. 18 | */ 19 | 20 | import java.io.File; 21 | import java.io.FileInputStream; 22 | import java.io.FileOutputStream; 23 | import java.io.IOException; 24 | import java.net.URL; 25 | import java.nio.channels.Channels; 26 | import java.nio.channels.ReadableByteChannel; 27 | import java.util.Properties; 28 | 29 | public class MavenWrapperDownloader { 30 | 31 | /** 32 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. 33 | */ 34 | private static final String DEFAULT_DOWNLOAD_URL = 35 | "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; 36 | 37 | /** 38 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to 39 | * use instead of the default one. 40 | */ 41 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH = 42 | ".mvn/wrapper/maven-wrapper.properties"; 43 | 44 | /** 45 | * Path where the maven-wrapper.jar will be saved to. 46 | */ 47 | private static final String MAVEN_WRAPPER_JAR_PATH = 48 | ".mvn/wrapper/maven-wrapper.jar"; 49 | 50 | /** 51 | * Name of the property which should be used to override the default download url for the wrapper. 52 | */ 53 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; 54 | 55 | public static void main(String args[]) { 56 | System.out.println("- Downloader started"); 57 | File baseDirectory = new File(args[0]); 58 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); 59 | 60 | // If the maven-wrapper.properties exists, read it and check if it contains a custom 61 | // wrapperUrl parameter. 62 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); 63 | String url = DEFAULT_DOWNLOAD_URL; 64 | if (mavenWrapperPropertyFile.exists()) { 65 | FileInputStream mavenWrapperPropertyFileInputStream = null; 66 | try { 67 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); 68 | Properties mavenWrapperProperties = new Properties(); 69 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); 70 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); 71 | } catch (IOException e) { 72 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); 73 | } finally { 74 | try { 75 | if (mavenWrapperPropertyFileInputStream != null) { 76 | mavenWrapperPropertyFileInputStream.close(); 77 | } 78 | } catch (IOException e) { 79 | // Ignore ... 80 | } 81 | } 82 | } 83 | System.out.println("- Downloading from: : " + url); 84 | 85 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); 86 | if (!outputFile.getParentFile().exists()) { 87 | if (!outputFile.getParentFile().mkdirs()) { 88 | System.out.println( 89 | "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); 90 | } 91 | } 92 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); 93 | try { 94 | downloadFileFromURL(url, outputFile); 95 | System.out.println("Done"); 96 | System.exit(0); 97 | } catch (Throwable e) { 98 | System.out.println("- Error downloading"); 99 | e.printStackTrace(); 100 | System.exit(1); 101 | } 102 | } 103 | 104 | private static void downloadFileFromURL(String urlString, File destination) throws Exception { 105 | URL website = new URL(urlString); 106 | ReadableByteChannel rbc; 107 | rbc = Channels.newChannel(website.openStream()); 108 | FileOutputStream fos = new FileOutputStream(destination); 109 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 110 | fos.close(); 111 | rbc.close(); 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /micro-order/.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- 1 | /* 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | 10 | https://www.apache.org/licenses/LICENSE-2.0 11 | 12 | Unless required by applicable law or agreed to in writing, 13 | software distributed under the License is distributed on an 14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | KIND, either express or implied. See the License for the 16 | specific language governing permissions and limitations 17 | under the License. 18 | */ 19 | 20 | import java.io.File; 21 | import java.io.FileInputStream; 22 | import java.io.FileOutputStream; 23 | import java.io.IOException; 24 | import java.net.URL; 25 | import java.nio.channels.Channels; 26 | import java.nio.channels.ReadableByteChannel; 27 | import java.util.Properties; 28 | 29 | public class MavenWrapperDownloader { 30 | 31 | /** 32 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. 33 | */ 34 | private static final String DEFAULT_DOWNLOAD_URL = 35 | "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; 36 | 37 | /** 38 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to 39 | * use instead of the default one. 40 | */ 41 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH = 42 | ".mvn/wrapper/maven-wrapper.properties"; 43 | 44 | /** 45 | * Path where the maven-wrapper.jar will be saved to. 46 | */ 47 | private static final String MAVEN_WRAPPER_JAR_PATH = 48 | ".mvn/wrapper/maven-wrapper.jar"; 49 | 50 | /** 51 | * Name of the property which should be used to override the default download url for the wrapper. 52 | */ 53 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; 54 | 55 | public static void main(String args[]) { 56 | System.out.println("- Downloader started"); 57 | File baseDirectory = new File(args[0]); 58 | System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); 59 | 60 | // If the maven-wrapper.properties exists, read it and check if it contains a custom 61 | // wrapperUrl parameter. 62 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); 63 | String url = DEFAULT_DOWNLOAD_URL; 64 | if (mavenWrapperPropertyFile.exists()) { 65 | FileInputStream mavenWrapperPropertyFileInputStream = null; 66 | try { 67 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); 68 | Properties mavenWrapperProperties = new Properties(); 69 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); 70 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); 71 | } catch (IOException e) { 72 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); 73 | } finally { 74 | try { 75 | if (mavenWrapperPropertyFileInputStream != null) { 76 | mavenWrapperPropertyFileInputStream.close(); 77 | } 78 | } catch (IOException e) { 79 | // Ignore ... 80 | } 81 | } 82 | } 83 | System.out.println("- Downloading from: : " + url); 84 | 85 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); 86 | if (!outputFile.getParentFile().exists()) { 87 | if (!outputFile.getParentFile().mkdirs()) { 88 | System.out.println( 89 | "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); 90 | } 91 | } 92 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); 93 | try { 94 | downloadFileFromURL(url, outputFile); 95 | System.out.println("Done"); 96 | System.exit(0); 97 | } catch (Throwable e) { 98 | System.out.println("- Error downloading"); 99 | e.printStackTrace(); 100 | System.exit(1); 101 | } 102 | } 103 | 104 | private static void downloadFileFromURL(String urlString, File destination) throws Exception { 105 | URL website = new URL(urlString); 106 | ReadableByteChannel rbc; 107 | rbc = Channels.newChannel(website.openStream()); 108 | FileOutputStream fos = new FileOutputStream(destination); 109 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 110 | fos.close(); 111 | rbc.close(); 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /micro-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.micro 7 | micro-mall 8 | 1.0-v 9 | ../ 10 | 11 | com.micro 12 | micro-common 13 | 1.0-v 14 | jar 15 | common 16 | Micro Mall common Project 17 | 18 | 19 | 1.8 20 | 21 | 22 | 23 | 24 | org.springframework.boot 25 | spring-boot-starter 26 | 27 | 28 | 29 | org.springframework.boot 30 | spring-boot-starter-test 31 | 32 | 33 | 34 | junit 35 | junit 36 | 4.12 37 | test 38 | 39 | 40 | 41 | com.zaxxer 42 | HikariCP 43 | 3.4.0 44 | 45 | 46 | 47 | mysql 48 | mysql-connector-java 49 | 8.0.17 50 | 51 | 52 | 53 | org.mybatis.spring.boot 54 | mybatis-spring-boot-starter 55 | 2.1.0 56 | 57 | 58 | 59 | com.baomidou 60 | mybatis-plus-boot-starter 61 | 3.2.0 62 | 63 | 64 | 65 | com.baomidou 66 | mybatis-plus 67 | 3.2.0 68 | 69 | 70 | 71 | org.springframework.cloud 72 | spring-cloud-starter-openfeign 73 | 2.1.3.RELEASE 74 | 75 | 76 | 77 | io.github.openfeign 78 | feign-okhttp 79 | 10.4.0 80 | 81 | 82 | 83 | org.projectlombok 84 | lombok 85 | 1.18.10 86 | 87 | 88 | 89 | io.springfox 90 | springfox-swagger2 91 | 2.9.2 92 | 93 | 94 | 95 | io.springfox 96 | springfox-swagger-ui 97 | 2.9.2 98 | 99 | 100 | 101 | ch.qos.logback 102 | logback-classic 103 | 1.2.3 104 | 105 | 106 | 107 | ch.qos.logback 108 | logback-core 109 | 1.2.3 110 | 111 | 112 | 113 | ch.qos.logback 114 | logback-access 115 | 1.2.3 116 | 117 | 118 | 119 | com.alibaba 120 | fastjson 121 | 1.2.61 122 | 123 | 124 | 125 | org.apache.commons 126 | commons-lang3 127 | 3.9 128 | 129 | 130 | 131 | commons-beanutils 132 | commons-beanutils 133 | 1.9.4 134 | 135 | 136 | 137 | 138 | org.springframework.boot 139 | spring-boot-starter-web 140 | 141 | 142 | org.springframework.boot 143 | spring-boot-starter-tomcat 144 | 145 | 146 | 147 | 148 | 149 | org.springframework.boot 150 | spring-boot-starter-undertow 151 | 152 | 153 | 154 | 155 | 156 | org.springframework.boot 157 | spring-boot-maven-plugin 158 | 159 | 160 | org.apache.maven.plugins 161 | maven-surefire-plugin 162 | 163 | true 164 | 165 | 166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # micro-mall 2 | 3 | ## 前言 4 | 5 | `micro-mall`项目致力于打造一个完整的电商小程序系统,采用现阶段流行技术实现。 6 | 7 | ## 项目文档 8 | 9 | - 文档地址: 10 | - 备用地址: 11 | 12 | ## 项目介绍 13 | 14 | `micro-mall`项目是一套电商系统,包括前台商城系统及后台管理系统,基于Alibaba Spring Cloud + MyBatis实现。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。 15 | 16 | ### 项目演示 17 | 18 | #### 后台管理系统 19 | 20 | 前端项目: 21 | 22 | 项目演示地址: 23 | 24 | #### 前台商城系统 25 | 26 | 前端项目`mall-app-web`地址:敬请期待...... 27 | 28 | 项目演示地址: 29 | 30 | ### 组织结构 31 | 32 | ``` lua 33 | micro-mall 34 | ├── micro-common -- 工具类及通用代码 35 | ├── micro-core -- 项目基础核心 36 | ├── micro-user -- 后台商城用户中心 37 | ├── micro-search -- 基于Elasticsearch的商品搜索系统 38 | └── micro-order -- 商城系订单统接口 39 | ``` 40 | 41 | ### 技术选型 42 | 43 | #### 后端技术 44 | 45 | 技术 | 说明 | 官网 46 | ----|----|---- 47 | Alibaba Spring Cloud | 容器+MVC框架 | [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) 48 | Spring Security | 认证和授权框架 | [https://spring.io/projects/spring-security](https://spring.io/projects/spring-security) 49 | MyBatis | ORM框架 | [http://www.mybatis.org/mybatis-3/zh/index.html](http://www.mybatis.org/mybatis-3/zh/index.html) 50 | MyBatisGenerator | 数据层代码生成 | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html) 51 | PageHelper | MyBatis物理分页插件 | [http://git.oschina.net/free/Mybatis_PageHelper](http://git.oschina.net/free/Mybatis_PageHelper) 52 | Swagger-UI | 文档生产工具 | [https://github.com/swagger-api/swagger-ui](https://github.com/swagger-api/swagger-ui) 53 | Hibernator-Validator | 验证框架 | [http://hibernate.org/validator/](http://hibernate.org/validator/) 54 | Elasticsearch | 搜索引擎 | [https://github.com/elastic/elasticsearch](https://github.com/elastic/elasticsearch) 55 | RabbitMq | 消息队列 | [https://www.rabbitmq.com/](https://www.rabbitmq.com/) 56 | Redis | 分布式缓存 | [https://redis.io/](https://redis.io/) 57 | MongoDb | NoSql数据库 | [https://www.mongodb.com/](https://www.mongodb.com/) 58 | Docker | 应用容器引擎 | [https://www.docker.com/](https://www.docker.com/) 59 | Druid | 数据库连接池 | [https://github.com/alibaba/druid](https://github.com/alibaba/druid) 60 | OSS | 对象存储 | [https://github.com/aliyun/aliyun-oss-java-sdk](https://github.com/aliyun/aliyun-oss-java-sdk) 61 | JWT | JWT登录支持 | [https://github.com/jwtk/jjwt](https://github.com/jwtk/jjwt) 62 | LogStash | 日志收集 | [https://github.com/logstash/logstash-logback-encoder](https://github.com/logstash/logstash-logback-encoder) 63 | Lombok | 简化对象封装工具 | [https://github.com/rzwitserloot/lombok](https://github.com/rzwitserloot/lombok) 64 | 65 | #### 前端技术 66 | 67 | 技术 | 说明 | 官网 68 | ----|----|---- 69 | Vue | 前端框架 | [https://vuejs.org/](https://vuejs.org/) 70 | Vue-router | 路由框架 | [https://router.vuejs.org/](https://router.vuejs.org/) 71 | Vuex | 全局状态管理框架 | [https://vuex.vuejs.org/](https://vuex.vuejs.org/) 72 | Element | 前端UI框架 | [https://element.eleme.io/](https://element.eleme.io/) 73 | Axios | 前端HTTP框架 | [https://github.com/axios/axios](https://github.com/axios/axios) 74 | v-charts | 基于Echarts的图表框架 | [https://v-charts.js.org/](https://v-charts.js.org/) 75 | Js-cookie | cookie管理工具 | [https://github.com/js-cookie/js-cookie](https://github.com/js-cookie/js-cookie) 76 | nprogress | 进度条控件 | [https://github.com/rstacruz/nprogress](https://github.com/rstacruz/nprogress) 77 | 78 | #### 架构图 79 | 80 | ##### 系统架构图 81 | 82 | 83 | ##### 业务架构图 84 | 85 | 86 | #### 模块介绍 87 | 88 | ##### 后台管理系统 `mall-admin` 89 | 90 | - 商品管理: 91 | - 订单管理: 92 | - 促销管理: 93 | - 内容管理: 94 | - 用户管理: 95 | 96 | ##### 前台商城系统 `mall-portal` 97 | 98 | 99 | #### 开发进度 100 | 101 | 102 | ## 环境搭建 103 | 104 | ### 开发工具 105 | 106 | 工具 | 说明 | 官网 107 | ----|----|---- 108 | IDEA | 开发IDE | https://www.jetbrains.com/idea/download 109 | RedisDesktop | redis客户端连接工具 | https://redisdesktop.com/download 110 | Robomongo | mongo客户端连接工具 | https://robomongo.org/download 111 | SwitchHosts| 本地host管理 | https://oldj.github.io/SwitchHosts/ 112 | X-shell | Linux远程连接工具 | http://www.netsarang.com/download/software.html 113 | Navicat | 数据库连接工具 | http://www.formysql.com/xiazai.html 114 | PowerDesigner | 数据库设计工具 | http://powerdesigner.de/ 115 | Axure | 原型设计工具 | https://www.axure.com/ 116 | MindMaster | 思维导图设计工具 | http://www.edrawsoft.cn/mindmaster 117 | ScreenToGif | gif录制工具 | https://www.screentogif.com/ 118 | ProcessOn | 流程图绘制工具 | https://www.processon.com/ 119 | PicPick | 图片处理工具 | https://picpick.app/zh/ 120 | Snipaste | 屏幕截图工具 | https://www.snipaste.com/ 121 | 122 | ### 开发环境 123 | 124 | 工具 | 版本号 | 下载 125 | ----|----|---- 126 | JDK | 1.8 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 127 | Mysql | 5.7 | https://www.mysql.com/ 128 | Redis | 3.2 | https://redis.io/download 129 | Elasticsearch | 6.2.2 | https://www.elastic.co/downloads 130 | MongoDb | 3.2 | https://www.mongodb.com/download-center 131 | RabbitMq | 3.7.14 | http://www.rabbitmq.com/download.html 132 | nginx | 1.10 | http://nginx.org/en/download.html 133 | 134 | ### 搭建步骤 135 | 136 | > Windows环境部署 137 | 138 | - Windows环境搭建请参考:[mall在Windows环境下的部署](https://github.com/macrozheng/mall-learning/blob/master/docs/deploy/mall_deploy_windows.md); 139 | - 注意:只启动mall-admin,仅需安装mysql即可; 140 | - 克隆`mall-admin-web`项目,并导入到IDEA中完成编译[传送门](https://github.com/macrozheng/mall-admin-web); 141 | - `mall-admin-web`项目的安装及部署请参考:[mall前端项目的安装与部署](https://github.com/macrozheng/mall-learning/blob/master/docs/deploy/mall_deploy_web.md); 142 | - ELK日志收集系统的搭建请参考:[SpringBoot应用整合ELK实现日志收集](https://github.com/macrozheng/mall-learning/blob/master/docs/technology/mall_tiny_elk.md)。 143 | 144 | > Docker环境部署 145 | 146 | - 在VirtualBox或其他环境中安装CenterOs7.6; 147 | - Docker环境的安装请参考:[开发者必备Docker命令](https://github.com/macrozheng/mall-learning/blob/master/docs/reference/docker.md); 148 | - 本项目Docker镜像构建请参考:[使用Maven插件为SpringBoot应用构建Docker镜像](https://github.com/macrozheng/mall-learning/blob/master/docs/reference/docker_maven.md); 149 | - 本项目在Docker容器下的部署请参考:[mall在Linux环境下的部署(基于Docker容器)](https://github.com/macrozheng/mall-learning/blob/master/docs/deploy/mall_deploy_docker.md); 150 | - 本项目使用Docker Compose请参考: [mall在Linux环境下的部署(基于Docker Compose)](https://github.com/macrozheng/mall-learning/blob/master/docs/deploy/mall_deploy_docker_compose.md)。 151 | 152 | ## 参考资料 153 | 154 | - [Spring实战(第4版)](https://book.douban.com/subject/26767354/) 155 | - [Spring Boot实战](https://book.douban.com/subject/26857423/) 156 | - [Spring Cloud微服务实战](https://book.douban.com/subject/27025912/) 157 | - [Spring Cloud与Docker微服务架构实战](https://book.douban.com/subject/27028228/) 158 | - [Spring Data实战](https://book.douban.com/subject/25975186/) 159 | - [MyBatis从入门到精通](https://book.douban.com/subject/27074809/) 160 | - [深入浅出MySQL](https://book.douban.com/subject/25817684/) 161 | - [循序渐进Linux(第2版)](https://book.douban.com/subject/26758194/) 162 | - [Elasticsearch 权威指南](https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html) 163 | - [Elasticsearch 技术解析与实战](https://book.douban.com/subject/26967826/) 164 | - [MongoDB实战(第二版)](https://book.douban.com/subject/27061123/) 165 | - [Kubernetes权威指南](https://book.douban.com/subject/26902153/) 166 | - [Pro Git](https://git-scm.com/book/zh/v2) 167 | 168 | 169 | Copyright (c) 2019- TwitterLife 170 | --------------------------------------------------------------------------------