用json文件声明Aop切片
By:wendal<wendal1985@gmail.com>

需使用的类

Top

看看一个示例的ioc配置文件

Top

配置示例:

var ioc = {
	log : {
		type :'org.nutz.aop.interceptor.LoggingMethodInterceptor'
	},
	myMI : {
		type : 'org.nutz.ioc.aop.config.impl.MyMI'
	},
	pet2 : {
	type : "org.nutz.ioc.aop.config.impl.Pet2"
	},
	
	$aop : {
		type : 'org.nutz.ioc.aop.config.impl.JsonAopConfigration',
		fields : {
			itemList : [
				['.+','toString','ioc:log'],
				['.+','.+','ioc:myMI'],
				['.+','.+','org.nutz.ioc.aop.config.impl.MyMI2','false']
			]
		}
	}
}

可以看到, 除了$aop这个beanName外,其他的与普通的ioc配置文件没有任何区别.

$aop ,其实是org.nutz.ioc.aop.config.AopConfigration接口的IOCNAME字段的值,只有你声明这个名字,且类型为这个接口的实现,就能轻易的配置Ioc.

估计你已经猜到,org.nutz.ioc.aop.config.impl.JsonAopConfigration就是其中一个实现!

细看这个部分代码:

		fields : {
			itemList : [
				['.+','toString','ioc:log'],
				['.+','.+','ioc:myMI'],
				['.+','.+','org.nutz.ioc.aop.config.impl.MyMI2','false']
			]
		}

使用JsonAopConfigration,只需要为其itemList赋值.

需要什么值? 对,一个数组.

数组的每一行,对应一条规则:

['.+','toString','ioc:log'],
['.+','.+','ioc:myMI']
['com\.wendal\.nutz\..+','get.+','org.nutz.ioc.aop.config.impl.MyMI2','false']

规则如下:

Top