aop - how to transform interface to abstract by using javassist -
i using javassist library modify class files.
i want modify interface abstract class
for example, original :
public interface javax.servlet.servlet { public void init(servletconfig config) throws servletexception; }
modified :
public abstract javax.servlet.servlet { public void init(servletconfig config) throws servletexception { system.out.println(config.getservletcontext().getserverinfo()); callmethod(); // implemented original method } }
how can apply solution aop(before, after)?
i think first problem approach when try modify interface
using javassist
attempting redefine interface has been loaded class loader.
one option might bit of classloader tricks: create new classloader
doesn't have existing interface loaded (parent system classloader) , have javassist
load through (use actclass.toclass()
method takes classloader
argument). not since manage more 1 classloader
not easy.
there might better way achieve goal, , creating new classes might better design. create new class implements need , extends required interface.
moreover suggest take @ dynamic proxies option well. biggest advantage don't need 3rd party libraries create them.
Comments
Post a Comment