├── 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 |
--------------------------------------------------------------------------------