当前位置: 首页 > news >正文

电商项目专题(三)-项目搭建

1.搭建父工程

创建统一的父工程:yigou,用来管理依赖及其版本,注意是创建project,而不是moudle

填写坐标信息:

填写保存位置信息:

父工程不需要代码,只是管理依赖,因此我们不选择任何SpringCloud的依赖。

然后将pom文件修改成我这个样子:

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="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><groupId>com.yigou.parent</groupId><artifactId>yigou</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/><!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR1</spring-cloud.version><mybatis.starter.version>1.3.2</mybatis.starter.version><mapper.starter.version>2.0.2</mapper.starter.version><druid.starter.version>1.1.9</druid.starter.version><mysql.version>5.1.32</mysql.version><pageHelper.starter.version>1.2.3</pageHelper.starter.version><fastDFS.client.version>1.26.1-RELEASE</fastDFS.client.version></properties><dependencyManagement><dependencies><!-- springCloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- mybatis启动器 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!-- 通用Mapper启动器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>${mapper.starter.version}</version></dependency><!-- 分页助手启动器 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pageHelper.starter.version}</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--FastDFS客户端--><dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId><version>${fastDFS.client.version}</version></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

可以发现,我们在父工程中引入了SpringCloud等很多以后需要用到的依赖,以后创建的子工程就不需要自己引入了。

2.创建EurekaServer

2.1.创建工程

这个大家应该比较熟悉了。
我们的注册中心,起名为:yigou-registry
直接创建maven项目,自然会继承父类的依赖:
选择新建module:

选择maven安装,但是不要选择骨架:

然后填写项目坐标,我们的项目名称为yigou-registry:

选择安装目录,因为是聚合项目,目录应该是在父工程leyou的下面:

2.2.添加依赖

添加EurekaServer的依赖:

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="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"><parent><artifactId>yigou</artifactId><groupId>com.yigou.parent</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>yigou-registry</artifactId><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies></project>

2.3.编写启动类

/** * @author bruceliu * @create 2019-09-01 10:51 * @description */@SpringBootApplication@EnableEurekaServerpublicclassYigouRegistry{publicstaticvoidmain(String[]args){SpringApplication.run(YigouRegistry.class,args);}}

2.4.配置文件

server:port:10086spring:application:name:yigou-registryeureka:client:fetch-registry:falseregister-with-eureka:false#false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务service-url:defaultZone:http://127.0.0.1:${server.port}/eurekaserver:enable-self-preservation:false# 关闭自我保护eviction-interval-timer-in-ms:5000# 每隔5秒进行一次服务列表清理

2.5.项目的结构:

目前,整个项目的结构如图:

3.创建Zuul网关

3.1.创建工程

与上面类似,选择maven方式创建Module,然后填写项目名称,我们命名为:yigou-api-gateway

填写保存的目录:

3.2.添加依赖

这里我们需要添加Zuul和EurekaClient的依赖:

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="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"><parent><artifactId>yigou</artifactId><groupId>com.yigou.parent</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>yigou-api-gateway</artifactId><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--是springboot提供的微服务检测接口,默认对外提供几个接口:/info--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies></project>

3.3.编写启动类

/** * @author bruceliu * @create 2019-09-01 11:05 * @description */@SpringBootApplication@EnableDiscoveryClient@EnableZuulProxypublicclassYigouApiGateway{publicstaticvoidmain(String[]args){SpringApplication.run(YigouApiGateway.class,args);}}

3.4.配置文件

server:port:10010spring:application:name:api-gatewayeureka:client:service-url:defaultZone:http://127.0.0.1:10086/eurekaregistry-fetch-interval-seconds:5instance:prefer-ip-address:trueip-address:127.0.0.1instance-id:${spring.application.name}:${server.port}zuul:prefix:/api# 添加路由前缀retryable:trueribbon:ConnectTimeout:250# 连接超时时间(ms)ReadTimeout:2000# 通信超时时间(ms)OkToRetryOnAllOperations:true# 是否对所有操作重试MaxAutoRetriesNextServer:1# 同一服务不同实例的重试次数MaxAutoRetries:1# 同一实例的重试次数hystrix:command:default:execution:isolation:thread:timeoutInMillisecond:10000# 熔断超时时长:10000ms

3.5.项目结构

目前,yigou下有两个子模块:

yigou-registry:服务的注册中心(EurekaServer) yigou-api-gateway:服务网关(Zuul)

目前,服务的结构如图所示:

截止到这里,我们已经把基础服务搭建完毕,为了便于开发,统一配置中心(ConfigServer)我们留待以后添加。

http://www.jsqmd.com/news/1282040/

相关文章:

  • P1332 血色先锋队复盘
  • 2026新版遂宁防水补漏服务商参考|阳台渗漏修缮方案指南 - 筑宅安
  • 2026年武汉黄陂区管道疏通避坑指南:金池师傅教你识别隐形收费 - 余生黄金回收
  • 2026西安黄金回收五区深度走访实录:未央雁塔长安灞桥莲湖,把临街门店的真实内幕一次说清 - 人间烟火小记
  • 基于SpringBoot的企业人事管理系统(Java+SpringBoot+MySQL)| 计算机毕业设计 附源码论文PPT
  • CT值到灰度值的映射, 以及windowing中的窗宽和窗位
  • 3步掌握星露谷物语农场规划器:免费工具打造完美农场
  • 免费开源鼠标连点器终极指南:5分钟快速实现自动化点击
  • 2026松江管道疏通防坑实测邻里帮师傅上门快 - 余生黄金回收
  • P1135 奇怪的电梯复盘
  • Blender终极贝塞尔曲线插件:Flexi工具完全指南
  • Kubernetes 的 Annotation
  • 如何用yuzu模拟器在电脑上打造专属Switch游戏体验?
  • 剔除套路商家,2026石家庄黄金回收优选排名,石家庄卖黄金直接参考 - 资讯洞察员
  • 如何实现终极Android Root隐藏:SUSFS4KSU模块完整指南
  • 2026年句容黄金回收实战指南:成色检测与计量避坑全攻略 - 微城市网络
  • Palworld存档工具终极指南:3种方法实现高效数据解析与转换
  • 一部60分钟AI长片拿下了广电许可证:当开源冲破2.8万亿参数,AI影视化的最后一道坎在哪?
  • 2026年全自行升降机、全自行升降平台厂家推荐 - 优企甄选
  • 如何彻底告别Windows磁盘空间不足:WinDirStat完全指南
  • C语言—求第n个斐波那契数列的值(非递归)
  • 【单片机毕业设计推荐】基于 STM32 的智能温室环境监测与自动调控系统设计,基于 STM32 的盆栽智能水肥光照综合管理装置设计(011704)
  • 区块链学习笔记:D04 区块链在各行业领域的应用(二)
  • 从OpenClaw漏洞事件看RASP与SCA在开源软件安全加固中的实战应用
  • CSS3 3D转换模块-正方体,长方体
  • 绥宁县新房除甲醛公司测评对比,本地业主实测,选邵阳森呼吸更省心 - 专注室内空气检测治理
  • 2026新版汉中防水补漏服务商参考|阳台渗漏修缮方案指南 - 筑宅安
  • 花都招聘平台哪个好:【帅聘网】实力认证 - MXyuyu
  • 【Springboot毕设全套源码+文档】基于SpringBoot的艺术作品展示平台的设计与实现(丰富项目+远程调试+讲解+定制)
  • 基于行空板与ChatGPT API的智能硬件创客项目:乐观新闻播报器