spring cloud microservice architecture b2b2c e-commerce - common service project construction process

We will analyze the whole project of common service, record the whole construction process, and let more people to learn.

First, before building the common service of spring cloud, we need to prepare the following technologies:

Maven (project construction), Spring Boot, Spring Cloud, microservice concept, decentralization idea, distribution, etc. for the top-level projects of common service, here we mainly use Maven to build, with less gossiping, we directly access the code is the most intuitive.

Create a top-level project of Maven, where the pom.xml file is configured as follows:

<?xml version="1.0" encoding="UTF-8"?>  
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
   <modelVersion>4.0.0</modelVersion>  
<parent>  
       <groupId>org.springframework.cloud</groupId>  
       <artifactId>spring-cloud-starter-parent</artifactId>  
       <version>Dalston.RELEASE</version>  
       <relativePath />  
   </parent>  
 
   <groupId>com.ml.honghu</groupId>  
   <artifactId>particle-commonservice</artifactId>  
   <version>0.0.1-SNAPSHOT</version>  
   <packaging>pom</packaging>  
 
   <name>particle-commonservice</name>  
   <description>particle-commonservice project for Spring Boot</description>  
 
   <modules>  
       <module>particle-commonservice-config</module>  
       <module>particle-commonservice-eureka</module>  
       <module>particle-commonservice-mq</module>  
       <module>particle-commonservice-cache</module>  
       <module>particle-commonservice-sso</module>  
       <module>particle-commonservice-apigateway</module>  
       <module>particle-commonservice-zipkin</module>  
       <module>particle-commonservice-admin</module>  
       <module>particle-commonservice-turbine</module>  
       <module>particle-commonservice-combine</module>  
       <module>particle-commonservice-sequence</module>  
   </modules>  
 
   <properties>  
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
       <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
       <java.version>1.8</java.version>  
         
       <!-- Framework general package version settings -->  
       <validator.version>5.3.4.Final</validator.version>  
       <shiro.version>1.2.3</shiro.version>  
       <druid.version>1.0.26</druid.version>  
       <mybatis-spring.version>1.2.2</mybatis-spring.version>  
       <shiro.version>1.2.3</shiro.version>  
       <druid.version>1.0.11</druid.version>  
       <ehcache.version>2.6.9</ehcache.version>  
       <ehcache-web.version>2.0.4</ehcache-web.version>  
       <sitemesh.version>2.4.2</sitemesh.version>  
       <activiti.version>5.15.1</activiti.version>  
       <wink.version>1.4</wink.version>  
       <sso.client.version>3.4.1</sso.client.version> -->  
 
       <!-- General kit version settings -->  
       <slf4j.version>1.7.7</slf4j.version>  
       <commons-lang3.version>3.3.2</commons-lang3.version>  
       <commons-io.version>2.4</commons-io.version>  
       <commons-codec.version>1.9</commons-codec.version>  
       <commons-fileupload.version>1.3.1</commons-fileupload.version>  
       <commons-beanutils.version>1.9.1</commons-beanutils.version>  
       <fastjson.version>1.1.40</fastjson.version>  
       <xstream.version>1.4.7</xstream.version>  
       <guava.version>17.0</guava.version>  
       <dozer.version>5.5.1</dozer.version>  
       <email.version>1.4.7</email.version>  
       <poi.version>3.9</poi.version>  
       <cglib.version>3.2.5</cglib.version>  
         
       <!-- aliyun -->  
       <aliyun-sdk-oss.version>2.6.0</aliyun-sdk-oss.version>  
       <aliyun-sdk-openservices-ons.version>1.2.7.Final</aliyun-sdk-openservices-ons.version>  
       <com.ml.honghu.componet.version>0.0.1-SNAPSHOT</com.ml.honghu.componet.version>  
       <spring-boot-admin.version>1.5.1</spring-boot-admin.version>  
       <fastjson.version>1.2.35</fastjson.version>  
   </properties>  
 
   <dependencyManagement>  
       <dependencies>  
 
           <!-- spring cloud -->  
           <dependency>  
               <groupId>org.springframework.cloud</groupId>  
               <artifactId>spring-cloud-dependencies</artifactId>  
               <version>Dalston.RELEASE</version>  
               <type>pom</type>  
               <scope>import</scope>  
           </dependency>  
             
           <dependency>  
               <groupId>org.jasig.cas.client</groupId>  
               <artifactId>cas-client-core</artifactId>  
               <version>3.4.1</version>  
           </dependency>  
             
           <dependency>  
               <groupId>io.springfox</groupId>  
               <artifactId>springfox-swagger2</artifactId>  
               <version>2.5.0</version>  
           </dependency>  
           <dependency>  
               <groupId>de.codecentric</groupId>  
               <artifactId>spring-boot-admin-server</artifactId>  
               <version>${spring-boot-admin.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>de.codecentric</groupId>  
               <artifactId>spring-boot-admin-server-ui</artifactId>  
               <version>${spring-boot-admin.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>de.codecentric</groupId>  
               <artifactId>spring-boot-admin-server-ui-hystrix</artifactId>  
               <version>${spring-boot-admin.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>de.codecentric</groupId>  
               <artifactId>spring-boot-admin-server-ui-turbine</artifactId>  
               <version>${spring-boot-admin.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>de.codecentric</groupId>  
               <artifactId>spring-boot-admin-server-ui-login</artifactId>  
               <version>${spring-boot-admin.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>de.codecentric</groupId>  
               <artifactId>spring-boot-admin-server-ui-activiti</artifactId>  
               <version>${spring-boot-admin.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>org.slf4j</groupId>  
               <artifactId>slf4j-api</artifactId>  
               <version>1.7.25</version>  
           </dependency>  
           <dependency>  
               <groupId>com.ml.honghu</groupId>  
               <artifactId>component-base</artifactId>  
               <version>${com.ml.honghu.componet.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>com.ml.honghu</groupId>  
               <artifactId>component-redis</artifactId>  
               <version>${com.ml.honghu.componet.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>com.ml.honghu</groupId>  
               <artifactId>component-utils</artifactId>  
               <version>${com.ml.honghu.componet.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>com.ml.honghu</groupId>  
               <artifactId>component-sequence-api</artifactId>  
               <version>${com.ml.honghu.componet.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>com.ml.honghu</groupId>  
               <artifactId>component-admin-ui-zipkin</artifactId>  
               <version>${com.ml.honghu.componet.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>com.ml.honghu</groupId>  
               <artifactId>component-admin-ui-route</artifactId>  
               <version>${com.ml.honghu.componet.version}</version>  
           </dependency>  
           <dependency>  
               <groupId>com.ml.honghu</groupId>  
               <artifactId>component-zuul-label</artifactId>  
               <version>${com.ml.honghu.componet.version}</version>  
           </dependency>  
       </dependencies>  
   </dependencyManagement>  
</project>  

The current pom.xml file introduces spring cloud related version configuration, general tool version configuration, and honghu related component configuration (because other system service projects depend on related components, and component projects are also created later)

From now on, I will record the construction process and essence of the recently developed spring cloud micro service Cloud Architecture to help more friends who are interested in developing the spring cloud framework. Let's discuss the construction process of the spring cloud architecture and how to apply it to enterprise projects.

Tags: Java Spring Maven Shiro Druid

Posted on Wed, 06 Nov 2019 09:59:46 -0500 by dirty_n4ppy