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

  • 时间:
  • 浏览:0
  • 来源:大发时时彩_时时彩最新网址_大发时时彩最新网址

前言

前一篇讲到了上方层的使用,可能有的是这么AOP,今天主要来说下4个多轻量级的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,有时候 新建4个多类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这些 接口中加在4个多测试最好的法律法律依据。

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

StudentService亲戚朋友来实现这些 最好的法律法律依据。

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

测试

删剪追到事先,亲戚朋友继续Values开刀,注释掉事先的代码事先,只留4个多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的基础工程基本上可能完工了,通过哪些记录我有一种又对事先的工程进行了一定量的改动,每次的一版写完有的是4个多新的感受,可能当时写一版的事先这么想这么来太久,一遍一遍的过完事先发现这些地方前会 优化,有时候 优化的效果也是挺明显,后续可能有新的功能实现可能业务还要的事先,也会同步更新的这些 示例工程。