ABP vNext微服务架构详细教程(补充篇)——单层模板(下)

业务代码

2

聚合服务

657faae15aaaa8597d4ec230bea3b5c5.gif

聚合服务层和基础服务层相同的道理,在Demo.Core.Contracts增加Services文件夹,并添加Notifications子文件夹,在其中添加Dtos文件夹并添加两个DTO与基础服务对应:

using Volo.Abp.Application.Dtos;namespace Demo.Core.Contracts.Services.Notifications.Dtos;public class CoreNotificationCreateDto:EntityDto<Guid>
{/// <summary>/// 接受着用户ID/// </summary>public Guid ReceiverId { get; set; }/// <summary>/// 标题/// </summary>public string Title { get; set; }/// <summary>/// 内容/// </summary>public string Content { get; set; }/// <summary>/// 是否已读/// </summary>public bool IsRead { get; set; }
}
using Volo.Abp.Auditing;namespace Demo.Core.Contracts.Services.Notifications.Dtos;public class CoreNotificationDto : CoreNotificationCreateDto,ICreationAuditedObject
{/// <summary>/// 创建时间/// </summary>public DateTime CreationTime { get; set; }/// <summary>/// 创建人/// </summary>public Guid? CreatorId { get; set; }
}

3a38f91be55db85c41930fd3f6679993.gif

在Demo.Core.Contracts项目中Services/Notifications下添加接口ICoreNotificationAppService如下:

using Demo.Core.Contracts.Services.Notifications.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;namespace Demo.Core.Contracts.Services.Notifications;public interface ICoreNotificationAppService:IApplicationService
{Task<PagedResultDto<CoreNotificationDto>> GetAllAsync(PagedAndSortedResultRequestDto request);Task<bool> CreatAsync(CoreNotificationCreateDto request);
}

fb4b3102cd07b9953b77ca5ec52f1f38.gif

在Demo.Core项目中的Services下创建Notifications文件夹并添加实现类CoreNotificationAppService:

using Demo.Core.Contracts.Services.Notifications;
using Demo.Core.Contracts.Services.Notifications.Dtos;
using Demo.NotificationManager.Contracts.Services.Notifications;
using Demo.NotificationManager.Contracts.Services.Notifications.Dtos;
using Mapster;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;namespace Demo.Core.Services.Notifications;public class CoreNotificationAppService:ApplicationService,ICoreNotificationAppService
{private readonly INotificationAppService _notificationAppService;public CoreNotificationAppService(INotificationAppService notificationAppService){_notificationAppService = notificationAppService;}public async Task<PagedResultDto<CoreNotificationDto>> GetAllAsync(PagedAndSortedResultRequestDto request){var ret = await _notificationAppService.GetListAsync(request);return new PagedResultDto<CoreNotificationDto>(ret.TotalCount, ret.Items.Adapt<List<CoreNotificationDto>>());}public async Task<bool> CreatAsync(CoreNotificationCreateDto request){var notification = request.Adapt<NotificationDto>();await _notificationAppService.CreateAsync(notification);return true;}
}

24ae24e70a7280a5663081eee0817553.gif

修改Demo.Core项目appsettings.json文件如下:

{"urls": "http://*:6003","RemoteServices": {"NitificationManager": {"BaseUrl": "http://localhost:5003/"}}
}

1b8f3bde9f40dd2da464dd5f5e4bcd8f.png

到这里,我们最基础的一个聚合层服务和基础层服务都创建完毕。

补充说明

fde94b7e60b305fb7ab1561d22cbf692.png

如果我们使用的是单一服务或者没有使用聚合层,可以只使用基础服务的用法。

4e0f911d03e6745c4a1128a199381a45.png

如果想继续使用AutoMapper框架作为实体映射,可在创建项目时保留AutoMapper相关内容。

fa4988ef1f4ac1cc10fda1c1aa82ad25.png

这篇文章中我们完成了删减的过程,依据我们的需要,我们再增加所需要的缓存、鉴权、当前用户传递等代码,具体可参见《ABP vNext微服务架构详细教程》系列完整文章。

46b7032531a5555210afbafab0cb9fec.png

为大家创建单层应用方便,我将编写一个单层模板项目代码生成器,上传至https://gitee.com/lightnehum/abp-single-layer-builder,请大家关注并使用。

0349895c5052a998f81ceaccbe22bd6d.jpeg

9f2787ec0614c55912e58346c90e28c2.png

关注我获得

更多精彩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP 电子商城基本数据表

1、品牌表 tp_brand CREATE TABLE tp_brand (id smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 品牌表,name varchar(60) NOT NULL DEFAULT COMMENT 品牌名称,logo varchar(80) NOT NULL DEFAULT COMMENT 品牌logo,desc text NOT NULL COMMENT 品牌描述,url varcha…

申请成为qq互联个人开发者步骤(注意事项)2018

一、官方网址 官方地址&#xff1a;https://connect.qq.com/manage.html#/ 二、申请时注意事项&#xff1a; 1、申请时的名称栏必须填写身份证上的姓名&#xff0c;否则是不给通过的 2、上传照片时&#xff0c;需要本人手持身份证&#xff0c;重点是照片中身份证上头像的位置要…

《Swift开发实战》——第1章,第1.4节启动iOS 8模拟器

本节书摘来自异步社区《Swift开发实战》一书中的第1章&#xff0c;第1.4节启动iOS 8模拟器&#xff0c;作者 李宁&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 1.4 启动iOS 8模拟器Xcode是一款功能全面的应用程序&#xff0c;通过此工具可以轻松输入、编译…

《算法导论》读书笔记--第1、2章课后题 (转)

第一章 转自http://www.cnblogs.com/batteryhp/p/4654860.html 思考题 1-1&#xff08;运行时间的比较&#xff09;确定时间t内求解的问题的最大规模。 上面是网上提供的答案。 注意点&#xff1a; 1、最左边一列的是关于n的增长情况描述&#xff0c;值得记住的是这些增长的排…

PHP开发自己的框架必备知识点

一、PHP常用的四种数据结构 简介&#xff1a;spl是php的一个标准库。 官方文档&#xff1a;http://php.net/manual/zh/book.spl.php <?php//spl&#xff08;php标准库&#xff09;数据结构/*** 栈&#xff08;先进后出&#xff09;*/ $stack new SplStack(); $stack-&g…

Linux 环境下 jdk1.8 maven3.2.3 Git2.8.0 安装脚本

2019独角兽企业重金招聘Python工程师标准>>> # Author: peizhouyu # Date: 2018-09-07 14:24:11 # Last Modified by: peizhouyu # Last Modified time: 2018-09-07 16:02:58#!/bin/bash SOFT_PATH/opt/softif [ ! -d $SOFT_PATH ];then mkdir $SOFT_PATH else …

《嵌入式设备驱动开发精解》——导读

前言 嵌入式设备驱动开发精解本书的编写主要是针对从事嵌入式软件开发人员。本书的内容主要涵盖ARM CPU以及各种常用外部设备驱动开发的方方面面&#xff0c;包括各种硬件接口、硬件接口协议说明以及各种外设的使用及调试方法&#xff0c;特别是对于开发调试过程中可能遇到的各…

C# WPF通过WindowChrome自定义窗体

概述在WPF界面开发中&#xff0c;系统默认的窗口比较丑&#xff0c;有时候想自定义窗体&#xff0c;比如微信的客户端窗口这样&#xff1a;使得左边的一块顶到最上端&#xff0c;如下图所示&#xff1a;这时候我们可以 WindowStyle"None"&#xff0c;AllowsTranspare…

【转载】递推公式的特征方程及通项公式

先贴上链接&#xff1a;http://blog.csdn.net/happykocola/article/details/73933314 因为最近在复习初赛&#xff0c;然后碰到了这道题&#xff0c;并不会做&#xff0c;才发现有这么高明的方法... 已知递推关系式&#xff1a; f(n)5f(n-1)-6f(n-2) (n>1) f(0)1 f(1)…

【leetcode】75. Sort Colors

题目如下&#xff1a; 解题思路&#xff1a;我的解题思路是遍历数组&#xff0c;遇到0删除该元素并插入到数组头部&#xff0c;遇到1则不处理&#xff0c;遇到2删除该元素并插入到数组尾部。 代码如下&#xff1a; class Solution(object):def sortColors(self, nums):"&q…

Seal-Report: 开放式数据库报表工具

Seal Report是.Net的一个基于Apache 2.0 开源工具&#xff0c;完全用C# 语言编写&#xff0c;最新的6.6 版本采用.NET 6&#xff0c;github: https://github.com/ariacom/Seal-Report。Seal Report提供了一个完整的框架&#xff0c;用于从任何数据库或任何非SQL源生成每日报告。…

《Ceph源码分析》——第2章,第2节Buffer

本节书摘来自华章出版社《Ceph源码分析》一书中的第2章&#xff0c;第2.2节Buffer&#xff0c;作者常涛&#xff0c;更多章节内容可以访问云栖社区“华章计算机”公众号查看 2.2 BufferBuffer就是一个命名空间&#xff0c;在这个命名空间下定义了Buffer相关的数据结构, 这些数…

eclipse在server中tomcat server找不到的问题

想要在eclipse的server新建tomcat服务器然而不知道怎么回事找不到Tomcat 7.0 Server 下面的红圈是tomcat server服务器&#xff08;更新后才出现&#xff09; 网上找的很久&#xff0c;只是找到在eclipse中安装tomcat插件的方法 Tomcat免安装版的环境变量配置以及Eclipse下的To…

PHP根据指定url生成二维码图片

一、composer安装 http://packagist.p2hp.com/packages/codeitnowin/barcode 二、使用 调用generateQrCode()方法即可实现生成二维码图片并输出下载给用户 <?php namespace manage\Test;use CodeItNow\BarcodeBundle\Utils\QrCode; use common\extensions\Helper; use y…

CA 周记 - 派福利!通过 Azure 零成本进入 CUDA 编程

我们在配置深度学习环境的时候&#xff0c;除了安装各种库和框架外&#xff0c;如果需要 GPU 加速&#xff0c;还需要配置 CUDA 。那 CUDA 是什么 &#xff1f;它的作用是什么 &#xff1f;CUDA 编程介绍01什么是 CUDA&#xff1f;CUDA (Compute Unified Device Architecture) …

《视图更新与关系数据库理论》——2.1 关系和关系变量

本节书摘来自异步社区出版社《视图更新与关系数据库理论》一书中的第2章&#xff0c;第2.1节&#xff0c;作者&#xff1a;【美】C.J. Date&#xff08;达特&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.1 关系和关系变量 每一个关系都有一…

PHP格式化全国省市区列表

一、代码部分 /*** 获取全国省市区列表&#xff08;格式化后&#xff09;*/public function getRegionList(){$data CoreRegion::find()->select([national_code, region_name, parent_id, region_level])->asArray()->all();$data $this->assembleRegionData($…

从 C# 崩溃异常 中研究 页堆 布局

一&#xff1a;背景 1.讲故事最近遇到一位朋友的程序崩溃&#xff0c;发现崩溃点在富编辑器 msftedit 上&#xff0c;这个不是重点&#xff0c;重点在于发现他已经开启了 页堆 &#xff0c;看样子是做了最后的挣扎。0:000> !analyze -v EXCEPTION_RECORD: (.exr -1) Except…

Win10笔记本不显示wifi列表

一、问题描述 1、连接有线网络时&#xff0c;只显示连接到的有线网络&#xff0c;而不显示wifi列表 2、不连接有线网络时&#xff0c;同样不显示wifi列表 二、解决方案 1、Win R 打开运行&#xff0c;并输入services.msc 2、回车确定&#xff0c;找到WLAN AutoConfig项&…

搭建WeApacheb网站服务器

本地yum源安装mkdir /opt/dvd (先用mkdir去根下opt目录下建一个名字叫dvd的目录)mount /dev/sr0 /opt/dvd (用mount命令&#xff0c;挂载光盘设备&#xff08;/dev/sr0&#xff09;,将光盘挂载到刚刚建立的dvd目录下&#xff08;/opt/dvd&#xff09;)写yum源配置文件|-cd…