Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring容器中手动添加bean并向其应用advice,而不从容器中获取bean?_Java_Spring_Playframework_Playframework 2.2_Spring Aop - Fatal编程技术网

Java 如何在Spring容器中手动添加bean并向其应用advice,而不从容器中获取bean?

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

我正在尝试在Play框架中对Global.java应用建议

我无法从spring容器中获取bean的原因是,这个Global.java正在由Play框架引导,我不可能手动替换它的实例

我可以想到两种可能的解决方案:

查找类似于autowireBean的方法。。这不仅决定了 自动布线,但也建议的东西以及。 想办法替换 Play框架用于引导应用程序的全局实例。 以下是我的代码片段:

@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

查看并获取更多详细信息