AbpVnext的微服务落地 手动落地

1.微服务电商项目的创建

 

 

1.前提:微服务概念 DDD概念 Abpvnext 框架 mysql 5.7  .NET5基础

2.落地工具:

2.1:ABP CLI 访问

 使用下列命令 添加 Abp cli命令工具

1 dotnet tool install -g Volo.Abp.Cli

2.1 : VS2019 vs2022 均可

VS下载地址  点击此地址下载

3.基于以上技术点创建微服务电商项目:

按照微服务架构图所示 网关层 聚合层 服务层  数据层 按照ABP的标准我会将各个微服务的业务独立为模块 我将创建以下四个模块

解决方案结构:

使用Cli创建解决方案 新建名为XXX.MicroServices文件夹 进入 打开cmd

abp new Ebusiness.Microservices -t console -o Ebusiness.Microservices -v 4.4.3

使用命令   创建解决方案

 

 

 

3.1:用户微服务

 进入console目录打开 cmd 执行

abp new Ebusiness.User -t module –no-ui –dbms mysql -o moduls\Ebusiness.User -v 4.4.3

 

3.2:商品微服务

 

abp new Ebusiness.Product -t module –dbms mysql –no-ui -o moduls\Ebusiness.Product -v 4.4.3

 

3.3:订单微服务

 

abp new Ebusiness.Order -t module –dbms mysql –no-ui -o moduls\Ebusiness.Order -v 4.4.3

 

3.4:支付微服务

abp new Ebusiness.Payment -t module –no-ui –dbms mysql -o moduls\Ebusiness.Payment -v 4.4.3

 

 

2.微服务电商项目的引入

添加解决方案文件夹 moduls microservices如图 添加引用 

 

 

项目整理

 创建完成后 注意Host项目的引用  

 

移除包 并添加 Nuget引入包:Volo.Abp.EntityFrameworkCore.MySQL 版本 4.4.3

 

 

 

 

 

 

 

 

 

3.微服务电商项目的数据库迁移

迁移项目 加上自己的领域实体

进入 Ebusiness.Order.HttpApi.Host 目录,运行命令:dotnet ef migrations add productservice

会生成一个迁移目录:Migrations

执行迁移,更新数据库:dotnet ef database update

此操作只会生成一个空数据库

 

如果要实现可以迁移表:

1,Ebusiness.Order.HttpApi.Host 项目的 OrderHttpApiHostModule,typeof(AbpEntityFrameworkCoreMySQLModule)

2,Ebusiness.Order.EntityFrameworkCore 项目的 OrderDbContext,添加:

public DbSet<Orders> Orders { get; set; }

3,Ebusiness.Order.EntityFrameworkCore 项目的 OrderDbContextModelCreatingExtensions,添加:

builder.Entity<Orders>(b =>

{

b.ConfigureByConvention();

b.HasMany(u => u.OrderItems).WithOne().HasForeignKey(ur => ur.OrderId).IsRequired();

});

 

4.微服务电商向的运行

 打开文件夹  进入 Ebusiness.Order.HttpApi.Host 运行:dotnet run

 

posted @ 2022-06-08 17:41  三五八团楚云飞  阅读(228)  评论(0)    收藏  举报