一、项目结构说明
demo的github地址:git clone -b v1 https://github.com/XHxin/demo-spring-cloud.git
整个项目分为以下五个模块:
demo-common 公共模块,用于存放一些公共内容,例如实体类
demo-provider-product 产品服务的生产者(真实项目可能还存在其他服务,例如订单服务等)
demo-consumer 消费者,服务的调用方
demo-eureka 注册中心(类似zookeeper)
demo-security 安全模块(我们提供的服务,例如产品服务可能是在公网网络下提供服务的,所以可不能让谁都能调用,需要做安全认证)
数据库脚本:
CREATE DATABASE springcloud CHARACTER SET UTF8 ;
USE springcloud ;
CREATE TABLE product (
prodcutId BIGINT AUTO_INCREMENT ,
productName VARCHAR(50) ,
productDesc VARCHAR(50) ,
CONSTRAINT pk_prodcut_id PRIMARY KEY(prodcutId)
) ;
INSERT INTO product(productName,productDesc) VALUES ('电视机',DATABASE()) ;
INSERT INTO product(productName,productDesc) VALUES ('笔记本电脑',DATABASE()) ;
INSERT INTO product(productName,productDesc) VALUES ('平板',DATABASE()) ;
INSERT INTO product(productName,productDesc) VALUES ('电水壶',DATABASE()) ;
INSERT INTO product(productName,productDesc) VALUES ('电冰箱',DATABASE()) ;
二、开始项目搭建
2.1 新建一个maven项目并命名为demo-spring-cloud
新建一个maven项目,项目名为demo-spring-cloud,此项目作为一个总项目,后面在此项目下新建五个子模块。
demo-spring-cloud项目的pom文件如下
<?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%20http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.nelson.org</groupId>
<artifactId>demo-spring-cloud</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<jdk.version>1.8</jdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency> <!-- 进行SpringCloud依赖包的导入处理 -->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency> <!-- SpringCloud离不开SpringBoot,所以必须要配置此依赖包 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>demo-spring-cloud</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jdk.version}</source><!-- 源代码使用的开发版本 -->
<target>${jdk.version}</target><!-- 需要生成的目标class文件的编译版本 -->
</configuration>
</plugin>
</plugins>
</build>
</project>
spingcloud中针对依赖包的版本并不像传统项目一样使用的是数字形式定义,反而是使用了一系列英国的地铁或者城市名字来定义,springcloud使用了springboot,其中对于的版本如下
Release Train Boot Version
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x
2.2 新建一个子模块demo-common
简历一个公共模块(maven项目),这个模块的主要功能是提供公共处理的工具类、实体、接口等。
pom文件如下,在pom文件中为此模块添加上版本信息
<?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%20http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>demo-spring-cloud</artifactId>
<groupId>com.nelson.org</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>demo-common</artifactId>
**<version>1.0.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>**
</project>
实体对象不管是服务提供者还是消费者都需要用到,所以把实体对象创建到demo-common模块中。


package com.nelson.org.entity;
/**
* @auther 1301913120@qq.com
* @create 2019-06-20 14:45
* @todo
*/
public class Product {
private Long productId;
private String productName;
private String productDesc;
public String getProductDesc() {
return productDesc;
}
public void setProductDesc(String productDesc) {
this.productDesc = productDesc;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {

2627

被折叠的 条评论
为什么被折叠?



