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

  • 时间:
  • 浏览:10

前言

前一篇讲到了里面层的使用,机会都有什么什么都那末 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的基础工程基本上机会完工了,通过那先 记录我你这俩 又对前一天的工程进行了血块的改动,每次的一版写完都有另另一三个 新的感受,机会当时写一版的前一天什么什么都那末 想过多,一遍一遍的过完前一天发现一点地方要能优化,否则优化的效果也是挺明显,后续机会有新的功能实现机会业务前要的前一天,也会同步更新的你这俩 示例工程。