net core Webapi基础工程搭建(七)——小试AOP及常规测试

  • 时间:
  • 浏览:0

前言

前一篇讲到了顶端层的使用,因为也有没有 AOP,今天主要来说下一二个轻量级的AOP第三方类库AspectoCore

简单介绍下或多或少类库,AspectCore Project 是适用于 net core 平台的轻量级 Aop(Aspect-oriented programming) 避免方案,它更好的遵循 net core 的模块化开发理念,使用AspectCore可不都可不可以 更容易构建低耦合、易扩展的Web应用应用多多线程 。

引入

首先,亲戚亲戚我门都也有Util层直接引入相关的类库。



却说亲戚亲戚我门都都还是先在Startup注册下,将ConfigureServices法律辦法 从void更改为IServiceProvider,目的却说,或多或少管道给别人了,不再由默认的来了。

    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        //...之后的
        services.AddAspectCoreContainer();
        return services.BuildAspectInjectorProvider();
    }

自定义属性

写完之后,亲戚亲戚我门都都就可不都可不可以 来试试或多或少玩意儿怎么会玩了,太多 说,Util来个文件夹Attributes,却说新建一二个类AprilLogAttribute,继承AbstractInterceptorAttribute

    public class AprilLogAttribute : AbstractInterceptorAttribute
    {
        public async override Task Invoke(AspectContext context, AspectDelegate next)
        {
            LogUtil.Debug("AprilLogAttribute begin");
            await next(context);
            LogUtil.Debug("AprilLogAttribute end");
        }
    }

没啥具体的使用注解,却说加个前后注释的作用。却说亲戚亲戚我门都也有之后的Student或多或少接口中加进一二个测试法律辦法 。

    public interface IStudentService : IBaseService<StudentEntity>
    {
        [AprilLog]
        void Test();
    }

StudentService亲戚亲戚我门都都来实现或多或少法律辦法 。

    public class StudentService : BaseService<StudentEntity>, IStudentService
    {
        public void Test()
        {
            LogUtil.Debug("StudentService Test");
        }
    }

测试

完整性拿出之后,亲戚亲戚我门都都继续Values开刀,注释掉之后的代码之后,只留一二个Test法律辦法 。

        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            _service.Test();
            return new string[] { "value1", "value2" };
        }

别忘了运行前在application.json顶端加进接口白名单。

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "CommonSettings": {
    "FilePath": "/uploads/files/"
  },
  "DefaultSqlConnectionString": {
    "MySql": "server=127.0.0.1;userid=root;password=root;database=test;"
  },
  "AllowUrl": "/api/Values" //或多或少因为没有

那一个劲是返回未登录
}



运行没问题报告 ,亲戚亲戚我门都都来看下日志记录。



另外也补充下或多或少记录的问题报告 ,因为前要监视接口调用的具体情况,亲戚亲戚我门都都可不都可不可以 加进断点看下或多或少context,或多或少对象顶端并是否是 因为含高 了亲戚亲戚我门都都调用了哪个接口的哪个法律辦法 等等信息,这里只举个简单的例子,亲戚亲戚我门都都可不都可不可以 知道亲戚亲戚我门都都调用的接口及法律辦法 ,包括实现及法律辦法 ,却说可不都可不可以 记录下是谁访问,哪个接口,执行时间等等。

小结

写到这里,net core webapi的基础工程基本上因为完工了,通过有有哪些记录我并是否是 又对之后的工程进行了几滴 的改动,每次的一版写完也有一二个新的感受,因为当时写一版的之后没有 想太多 ,一遍一遍的过完之后发现或多或少地方可不都可不可以 优化,却说优化的效果也是挺明显,后续因为有新的功能实现因为业务前要的之后,也会同步更新的或多或少示例工程。