java - how to set many targets to ProxyFactoryBean? -
i working spring 4 aop , right now, have proxyfactorybean configured this:
@bean @primary public proxyfactorybean proxyfactorybean() { proxyfactorybean proxyfactorybean = new proxyfactorybean(); proxyfactorybean.settarget(new clientservice()); proxyfactorybean.addadvice(new loggingadvice()); proxyfactorybean.addadvice(new debuginterceptor()); return proxyfactorybean; } this works, target clientservice object.
is possible set many targets , not 1 ? want set advices entire package, if possible. otherwise, set specifics targets, again, not one. how ? in advance
proxying beans in application context match criteria easiest done spring's autoproxy-facility. alas, pointcut api cumbersome use in java based config; subclass abstractautoproxycreator can express pointcut in java code.
for instance, i'd like:
@bean abstractautoproxycreator autoproxycreator() { return new abstractautoproxycreator() { @override protected object[] getadvicesandadvisorsforbean(class<?> beanclass, string beanname, targetsource customtargetsource) { if (businessservice.class.isassignablefrom(beanclass)) { return new object[] {loggingadvice()}; } else { return do_not_proxy; } } }; } @bean loggingadvice loggingadvice() { return new loggingadvice(); } @bean public personservice personservice() { return new personservice(); } this code untested, don't have ide spring (or maven) @ hand, gist should work.
Comments
Post a Comment