Java 如何在Spring容器中手动添加bean并向其应用advice,而不从容器中获取bean?
我正在尝试在Play框架中对Global.java应用建议 我无法从spring容器中获取bean的原因是,这个Global.java正在由Play框架引导,我不可能手动替换它的实例 我可以想到两种可能的解决方案: 查找类似于autowireBean的方法。。这不仅决定了 自动布线,但也建议的东西以及。 想办法替换 Play框架用于引导应用程序的全局实例。 以下是我的代码片段:Java 如何在Spring容器中手动添加bean并向其应用advice,而不从容器中获取bean?,java,spring,playframework,playframework-2.2,spring-aop,Java,Spring,Playframework,Playframework 2.2,Spring Aop,我正在尝试在Play框架中对Global.java应用建议 我无法从spring容器中获取bean的原因是,这个Global.java正在由Play框架引导,我不可能手动替换它的实例 我可以想到两种可能的解决方案: 查找类似于autowireBean的方法。。这不仅决定了 自动布线,但也建议的东西以及。 想办法替换 Play框架用于引导应用程序的全局实例。 以下是我的代码片段: @Component( "global" ) public class Global { private A
@Component( "global" )
public class Global {
private ApplicationContext ctx;
@Override
public void onStart(Application app) {
this.ctx = new ClassPathXmlApplicationContext( "spring-config.xml" );
this.ctx.getAutowireCapableBeanFactory().autowireBean( this );
}
@Override
public Action<?> onRequest(Request req, Method actionMethod)
return ....
}
}
@Aspect
public class AspectDemo {
@Around( "execution(* Global.onRequest(..))" )
public Object myAround(ProceedingJoinPoint jp) throws Throwable
{
System.out.println( "advising around start");
Object obj = jp.proceed();
// do something about the obj...
System.out.println( "advising around end");
return obj;
}
}
为了使全局成为Springbean,这意味着您可以使用SpringAOP,请查看@Configurable注释。基本上,通过这个注释和一些额外的配置,Spring可以使它没有实例化的任何类成为托管bean
查看并获取更多详细信息