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.
1. Create a Maven top-level project, 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.