为什么我喜欢打标签来配置AOP

1. 配置多很混乱,代码里面很难分辨出来哪些是AOP容器(比如属性注入)

2. 对于代码生成器生成的代码里面还需要手动加到配置里面

3. 连java spring现在都是清一色的注解来代替xml,这个就是趋势所在

我基于Autofac开发了一个基于标签来配置AOP的扩展

NUGET :Install-Package Autofac.Annotation

开源地址:

https://github.com/yuzd/Autofac.Annotation

帮忙点个star 谢谢!

特色

1.打个Bean标签就能注入到AOP

2.打个Autowired标签自动装配注入

3.打个Value标签自动注入配置值(Soure标签配合使用)具体使用方法看下面的例子

4.支持拦截器

5.更多等你发现

如何使用

AutofacAnnotationModule有两种构造方法

  1. 可以传一个Assebly列表 (这种方式会注册传入的Assebly里面打了标签的类)

  2. 可以传一个AsseblyName列表 (这种方式是先会根据AsseblyName查找Assebly 然后在注册)

支持的标签说明

Bean标签

说明:只能打在class上面 把某个类注册到autofac容器 例如:

1.无构造方法的方式 等同于 builder.RegisterType();

2.指定Scope [需要指定AutofacScope属性 如果不指定为则默认为AutofacScope.InstancePerDependency]

3.指定类型注册 等同于 builder.RegisterType().As()

4.指定名字注册 等同于 builder.RegisterType().Keyed("a4")

5.其他属性说明

  • InjectProperties 是否默认装配属性 【默认为true】

  • InjectPropertyType 属性自动装配的类型

  1. Autowired 【默认值】代表打了Autowired标签的才会自动装配

  2. ALL 代表会装配所有 等同于 builder.RegisterType().PropertiesAutowired()

  • AutoActivate 【默认为false】 如果为true代表autofac build完成后会自动创建 具体请参考 autofac官方文档

  • Ownership 【默认为空】 具体请参考 autofac官方文档

  • Interceptor 【默认为空】指定拦截器的Type

  • InterceptorType 拦截器类型 拦截器必须实现 Castle.DynamicProxy的 IInterceptor 接口, 有以下两种

  1. Interface 【默认值】代表是接口型

  2. Class 代表是class类型 这种的话是需要将要拦截的方法标virtual

  • InterceptorKey 如果同一个类型的拦截器有多个 可以指定Key

  • InitMethod 当实例被创建后执行的方法名称 类似Spring的init-method 可以是有参数(只能1个参数类型是IComponentContext)和无参数的方法

  • DestroyMetnod 当实例被Release时执行的方法 类似Spring的destroy-method 必须是无参数的方法

Autowired 自动装配

可以打在Field Property 构造方法的Parameter上面 其中Field 和 Property 支持在父类

Value 和 PropertySource

PropertySource类似Spring里面的PropertySource 可以指定数据源 支持 xml json格式 支持内嵌资源

1.json格式的文件

2. xml格式的文件

3.不指定PropertySource的话会默认从工程目录的 appsettings.json获取值

原文地址:https://www.cnblogs.com/yudongdong/p/10285392.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

AOP 还在配置吗改用打标签模式吧!相关推荐

  1. [10] AOP的注解配置

    1.关于配置文件 首先在因为要使用到扫描功能,所以xml的头文件中除了引入bean和aop之外,还要引入context才行: <?xml version="1.0" enco ...

  2. Java框架篇---spring aop两种配置方式

    Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步:  1. 使用注解@Aspect来定义一个切面,在切面中 ...

  3. 没有配置java环境变量,为什么我java环境变量都还没有配置都可以运行java程序了...

    为什么我java环境变量都还没有配置都可以运行java程序了 来源:互联网  宽屏版  评论 2012-06-09 01:34:26 分类: 电脑/网络 >> 程序设计 >> ...

  4. n3k配置vpc是否还需要配置hsrp_HSRP协议详解:配置HSRP实现网关的冗余备

    在配置HSRP之前,有必要深刻了解一些基础的概念. 什么是HSRP协议?HSRP也叫热备份由协议,即第一跳冗余协议,第一跳实际就是网关.从而实现网关的冗余和自动切换.该协议确保了当网络边缘设备或接入链 ...

  5. 咳咳,会用redis的帅哥拿到了上万,我这会用redis,还会配置redis的小鲜肉最低也待18k吧

    刚刚看到个会使用redis的帅哥拿到了上万,我很是不服,我这不但会使用redis还会配置redis,而且会redis集群,主从复制,哨兵模式和解决缓存穿透.缓存击穿和缓存雪崩等问题,重点重点我还是小鲜 ...

  6. mpls 保留标签值_MPLS 标签模式/分发行为/保留模式/标签空间

    Technorati 标签: MPLS,LDP,标签,label,分发 LDP协议的"标签行为" LDP协议使用的是:独立分配模式,主动分发,自由保留模式.标签空间是基于平台的,也 ...

  7. H3C 交换机配置静态聚合(trunk/access)模式

    目标: H3C 交换机配置静态聚合(trunk/access)模式 硬件配置: 1.三层核心交换机:S7005e 2.二层交换机:S5120 v2 S7005e过程: 创建vlan(如果已经存在可跳过 ...

  8. Delphi xe3 下配置 MAC OS X 编程调试模式

    Delphi XE3 RTM版本已经出来,只是官方迟迟未发布,不知道是不是想避开九月苹果? 然而盒子论坛里已经欣起一场骂战.从没用过 泛型.unicode.新RTTI , 坚守D7的开发者, 不知所云 ...

  9. 在 IIS6 配置使用php的fastcgi模式

    今天搭建网站的时候,需要配置网站的php运行环境为fastcgi模式,以往的网站都是采用isapi模式搭建的,既然是第一次遇到这样的问题,肯定是能学到东西了,我就自己搭建了一下,没想到成功了,呵呵,现 ...

最新文章

  1. 特斯拉AI高管都推荐的张量工具,开源了三年后终于中顶会了! | ICLR 2022 Oral
  2. 如何控制让PO的数量不超过PR数量
  3. 通达信服务器维修点查询,通达信验证服务器数据库修改
  4. mysql第二章_第二章 初识MySQL
  5. 百度怎么进行模糊搜索_怎么在百度上准确搜索,提高10倍效率?
  6. 老弟教你用CSS和JS实现曾经风靡一时的微信打飞机游戏
  7. 用于实时实例分割的Deep Snake算法
  8. 分布式任务调度框架设计与实现解读(1)
  9. 如何检测文档里含有非英字符_知网检测是算字数还是字符
  10. 自然语言处理 # 中文分词技术 概述
  11. 如何用 js 获取虚拟键盘高度?- 20170817 前端开发日报
  12. EXCEL如何批量调整图片大小?
  13. 【愚公系列】2023年01月 .NET CORE工具案例-基于SqlSugar的多库多表融合查询
  14. BIDI单纤双向光模块
  15. 安卓 解析软件包时出现问题
  16. 联想笔记本电脑键盘灯怎么开启_联想的键盘灯怎么开_联想笔记本键盘亮灯按哪个键-win7之家...
  17. shell小技巧(十一)打印下面这句话中字母数不大于6的单词
  18. EF更新使用AutoMapper_se7en3_新浪博客
  19. C与C++成长之路——c提高二之指针强化和字符串
  20. 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

热门文章

  1. angular ng-zorro 用组件自身方的法来重置表单校验
  2. centos 7.x systemd service 配置方法整理
  3. MySQL学习笔记之五:存储引擎和查询缓存
  4. Appointment over SMS on Windows Mobile
  5. java之for循环
  6. Blazor University (4)组件 — 单向绑定
  7. 如何判断当前请求的是健康检查API
  8. 【招聘(北京)】北京华光普泰生物招聘.NET软件开发
  9. 聊一聊Elasticsearch和MySQL的常用操作
  10. 一探即将到来的 C# 10