AOP 还在配置吗改用打标签模式吧!
为什么我喜欢打标签来配置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有两种构造方法
可以传一个Assebly列表 (这种方式会注册传入的Assebly里面打了标签的类)
可以传一个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 属性自动装配的类型
Autowired 【默认值】代表打了Autowired标签的才会自动装配
ALL 代表会装配所有 等同于 builder.RegisterType().PropertiesAutowired()
AutoActivate 【默认为false】 如果为true代表autofac build完成后会自动创建 具体请参考 autofac官方文档
Ownership 【默认为空】 具体请参考 autofac官方文档
Interceptor 【默认为空】指定拦截器的Type
InterceptorType 拦截器类型 拦截器必须实现 Castle.DynamicProxy的 IInterceptor 接口, 有以下两种
Interface 【默认值】代表是接口型
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 还在配置吗改用打标签模式吧!相关推荐
- [10] AOP的注解配置
1.关于配置文件 首先在因为要使用到扫描功能,所以xml的头文件中除了引入bean和aop之外,还要引入context才行: <?xml version="1.0" enco ...
- Java框架篇---spring aop两种配置方式
Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中 ...
- 没有配置java环境变量,为什么我java环境变量都还没有配置都可以运行java程序了...
为什么我java环境变量都还没有配置都可以运行java程序了 来源:互联网 宽屏版 评论 2012-06-09 01:34:26 分类: 电脑/网络 >> 程序设计 >> ...
- n3k配置vpc是否还需要配置hsrp_HSRP协议详解:配置HSRP实现网关的冗余备
在配置HSRP之前,有必要深刻了解一些基础的概念. 什么是HSRP协议?HSRP也叫热备份由协议,即第一跳冗余协议,第一跳实际就是网关.从而实现网关的冗余和自动切换.该协议确保了当网络边缘设备或接入链 ...
- 咳咳,会用redis的帅哥拿到了上万,我这会用redis,还会配置redis的小鲜肉最低也待18k吧
刚刚看到个会使用redis的帅哥拿到了上万,我很是不服,我这不但会使用redis还会配置redis,而且会redis集群,主从复制,哨兵模式和解决缓存穿透.缓存击穿和缓存雪崩等问题,重点重点我还是小鲜 ...
- mpls 保留标签值_MPLS 标签模式/分发行为/保留模式/标签空间
Technorati 标签: MPLS,LDP,标签,label,分发 LDP协议的"标签行为" LDP协议使用的是:独立分配模式,主动分发,自由保留模式.标签空间是基于平台的,也 ...
- H3C 交换机配置静态聚合(trunk/access)模式
目标: H3C 交换机配置静态聚合(trunk/access)模式 硬件配置: 1.三层核心交换机:S7005e 2.二层交换机:S5120 v2 S7005e过程: 创建vlan(如果已经存在可跳过 ...
- Delphi xe3 下配置 MAC OS X 编程调试模式
Delphi XE3 RTM版本已经出来,只是官方迟迟未发布,不知道是不是想避开九月苹果? 然而盒子论坛里已经欣起一场骂战.从没用过 泛型.unicode.新RTTI , 坚守D7的开发者, 不知所云 ...
- 在 IIS6 配置使用php的fastcgi模式
今天搭建网站的时候,需要配置网站的php运行环境为fastcgi模式,以往的网站都是采用isapi模式搭建的,既然是第一次遇到这样的问题,肯定是能学到东西了,我就自己搭建了一下,没想到成功了,呵呵,现 ...
最新文章
- 特斯拉AI高管都推荐的张量工具,开源了三年后终于中顶会了! | ICLR 2022 Oral
- 如何控制让PO的数量不超过PR数量
- 通达信服务器维修点查询,通达信验证服务器数据库修改
- mysql第二章_第二章 初识MySQL
- 百度怎么进行模糊搜索_怎么在百度上准确搜索,提高10倍效率?
- 老弟教你用CSS和JS实现曾经风靡一时的微信打飞机游戏
- 用于实时实例分割的Deep Snake算法
- 分布式任务调度框架设计与实现解读(1)
- 如何检测文档里含有非英字符_知网检测是算字数还是字符
- 自然语言处理 # 中文分词技术 概述
- 如何用 js 获取虚拟键盘高度?- 20170817 前端开发日报
- EXCEL如何批量调整图片大小?
- 【愚公系列】2023年01月 .NET CORE工具案例-基于SqlSugar的多库多表融合查询
- BIDI单纤双向光模块
- 安卓 解析软件包时出现问题
- 联想笔记本电脑键盘灯怎么开启_联想的键盘灯怎么开_联想笔记本键盘亮灯按哪个键-win7之家...
- shell小技巧(十一)打印下面这句话中字母数不大于6的单词
- EF更新使用AutoMapper_se7en3_新浪博客
- C与C++成长之路——c提高二之指针强化和字符串
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?