zoukankan      html  css  js  c++  java
  • .NetCore如何将特性和依赖注入有效结合

    场景        

    都知道在不改变原有代码结构的情况下,想要对原有接口进行验证或者审计等功能,基本上无非是装饰器、代理、AOP这三种方式了,装饰器和代理在我们的现有框架上并不是很友好,所以我推荐使用AOP。

    使用特性来实现基于AOP的审计需求

            传统特性很简单,无非是方法或者类前加上特性即可。

            但是在具有业务的情况下,有很多功能的提供类需要进行实例化才可以使用,在Core环境下,大部分都可以通过依赖注入来进行获取对象,如果能有效结合起来,那对于开发而言是相当便捷的。

            .NetCore的依赖注入可以说是无处不在的,特性也可以进行依赖注入,然后在需要用到的地方进行使用,具体用法如下

            首先在Startup文件中的ConfigureServices方法中进行特性的依赖注入

    //注入日志记录类
    services.AddScoped<LogAttribute>();

    然后使用的时候就和普通用法有所区别了

    这是普通用法

    [LogAttribute]
    public void Method(){}

    如果特性的构造函数需要进行依赖注入才能获取对象的话,用法如下

    [Microsoft.AspNetCore.Mvc.ServiceFilter(typeof(LogAttribute))]
    public void Method(){}

    果然微软想的周全。

  • 相关阅读:
    关于JAVA中HashMap集合的的三种超不好记的便利方案
    浅谈面向对象三大特性
    新鲜出炉springmvc
    看看我们以前搞过的几个对象
    在java中使用JDBC访问数据库
    关于多线程的小例子,快速上手!无需停留!!!
    关于java异常处理的面试题
    关于java异常处理
    关于java的log4j配置
    总结
  • 原文地址:https://www.cnblogs.com/yuchenghao/p/12124306.html
Copyright © 2011-2022 走看看