Invoke proxy AOP by calling method within the bean
lets say the I have got a bean called with two methods 'foo' and 'goo' and 'goo' is marked with AOP interception call.
is it possible to write any piece of code inside 'foo' in order to invoke 'goo' method not directly but through the proxy wrapper of the bean in order to activate the AOP part of it?public Class Pojo{
public void foo(){
//what should I write here in order to activate 开发者_开发百科'goo' in transactional mode??
}
@Transactional
public void goo(){
}
}
Yes, but you need to access it through the spring proxy:
public Class Pojo{
@Autowired
private Pojo springProxy;
public void foo(){
springProxy.goo();
}
@Transactional
public void goo(){
}
}
I couldn't use the autowired option. Perhaps it is because I am using reflection to invoke goo() (and any other method as well) from foo().
So eventually what solves my problem was to add in foo() code that will lookup for the Pojo's proxy bean class. and invoke the mothd using Sun invokation on the proxy bean
this invoked the AOP call as well.
Couldn't find any better workaround.
精彩评论