• .Net Core 3.0下AOP试水~~


    昨天躺了一下3.0的依赖注入的雷

    今天顺势把AOP做了一下调整,比如自动化的AOP注入

    默认的Program里面的CreateHostBuilder方法增加一行

            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .UseServiceProviderFactory(new JitServiceProviderFactory()) //新增
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    });

    在Startup里面增加方法

            public void ConfigureContainer(JitAopBuilder builder)
            {
                builder.Add<IMyClass, MyClass>(ServiceLifetime.Singleton);
            }

    或者

    正常的依赖注入

            public void ConfigureServices(IServiceCollection services)
            {
                services.AddControllers();
                //...略略略
                services.AddSingleton<IMyClass, MyClass>();
            }

    默认MyClass上修改一下

        [JitInject]
        public class MyClass: IMyClass
        {
            [JitAop]
            public void Hello()
            {
                Console.WriteLine("Hello");
            }
        }

    JitInject特性代表这个类需要AOP注入 JitAop方法则代表这个方法的具体AOP拦截流程,要自定义的话,只需要继承JitAopAttribute类即可

    支持同步/异步AOP拦截,彼此的流程独立


    项目链接

    https://github.com/htrlq/NCoreCoder.Framework

  • 相关阅读:
    1105 Spiral Matrix
    Spring Boot 单元测试
    第一个 Spring Boot 应用程序
    Spring Boot 优缺点
    Spring Boot 简介
    第一个 Spring 应用程序
    Spring 体系结构
    Spring 与 IoC
    Spring 的特点
    Spring 简介
  • 原文地址:https://www.cnblogs.com/NCoreCoder/p/11586797.html
Copyright © 2020-2023  润新知