1.先在cmd命令中安装abp CLI:
dotnet tool install -g Volo.Abp.Cli
2.创建项目文件夹WeifuwuDemo ,然后在文件夹顶部地址栏执行cmd命令,进入cmd命令界面,进行项目解决方案WeifuwuDemo的创建,不同的版本号对应的框架版本也不一样,可在官网进行查看:
abp new WeifuwuDemo -t console -o WeifuwuDemo -v 5.3.5
结果如图:
3.进入到项目文件夹,创建微服务模块:
abp new WeifuwuDemo.Order -t module --no-ui --dbms mysql -o moduls\WeifuwuDemo.Order -v 5.3.5
abp new WeifuwuDemo.Product -t module --no-ui --dbms mysql -o moduls\WeifuwuDemo.Product -v 5.3.5
abp new WeifuwuDemo.Payment -t module --no-ui --dbms mysql -o moduls\WeifuwuDemo.Payment -v 5.3.5
abp new WeifuwuDemo.User -t module --no-ui --dbms mysql -o moduls\WeifuwuDemo.User -v 5.3.5
abp new WeifuwuDemo.Seckill -t module --no-ui --dbms mysql -o moduls\WeifuwuDemo.Seckill -v 5.3.5
创建完成后,目录结构如下:
4.创建微服务层:在WeifuwuDemo文件夹下新建microservices文件夹,并把模块层中的host文件夹下的*.HttpApi.Host文件夹拷贝到microservices文件夹中;
5.打开项目解决方案,创建对应的解决方案文件夹moduls和microservices,并且在moduls解决方案文件夹下将每个模块单独创建一个文件夹,然后将模块中的项目引入;在microservices项目文件夹下把microservices中的项目引入;
6.创建api网关层:在解决方案中创建解决方案文件夹gateways,在项目文件夹中创建gateways文件夹,然后分别创建中台和后台的webapi项目MiddleApiGateway和BackendApiGateway;
7.创建中台层(聚合层):在解决方案和项目文件夹中新增middles文件夹,然后分别创建两个聚合接口的webapi项目SeckillAggregate和AdminAggregate
8.创建基础设施层:在解决方案和项目文件夹中新增frameworks文件夹,并且新增一个控制台应用程序WeifuwuDemo.Commons;
9.创建前台层:创建前端文件夹fronts;
10.运行:(1).将微服务层microservices里的项目报错的引用删掉,重新添加项目引用;
(2).在项目文件的HttpApiHostModule中把报红的代码注释掉,目前用不着;
(3).uget获取mysql驱动:Volo.Abp.EntityFrameworkCore.MySQL,并注释掉原来的sqlserver,使用mysql数据库
Configure<AbpDbContextOptions>(options =>
{
//替换掉使用的数据库
//options.UseSqlServer();
options.UseMySQL();
});
(4).在appsetings.json中把数据库连接更改过来:
"ConnectionStrings": {
"Default": "Server=localhost;Port=3306;Database=Order;Uid=root;Pwd=anran9359;",
"Order": "Server=localhost;Port=3306;Database=Order;Uid=root;Pwd=anran9359;"
},
(5).数据库迁移部分:HttpApiHostMigrationsDbContextFactory文件中,将默认的sqlserver替换为mysql:
public OrderHttpApiHostMigrationsDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
//var builder = new DbContextOptionsBuilder<OrderHttpApiHostMigrationsDbContext>()
// .UseSqlServer(configuration.GetConnectionString("Order"));
var builder = new DbContextOptionsBuilder<OrderHttpApiHostMigrationsDbContext>()
.UseMySql(configuration.GetConnectionString("Order"),MySqlServerVersion.LatestSupportedServerVersion);
return new OrderHttpApiHostMigrationsDbContext(builder.Options);
}
(6).注释掉目前不需要的东西,然后运行起来:
typeof(AbpAuditLoggingEntityFrameworkCoreModule),
typeof(AbpPermissionManagementEntityFrameworkCoreModule),
typeof(AbpSettingManagementEntityFrameworkCoreModule),
(7).其他项目同理,进行调整;