Inheritance 在播放时路由到从基本控制器继承的操作

Inheritance 在播放时路由到从基本控制器继承的操作,inheritance,playframework,Inheritance,Playframework,我正在使用Play1.2.4中的Java开发一个应用程序。我让控制器B扩展控制器A。这是否意味着控制器B从A继承操作?如果是这样,我如何路由到那些没有直接路由到控制器A的设备 例如: public class ControllerA { private static void action{ //I want to run this } } public class ControllerB extends ControllerA { } 我能这样叫动作吗:

我正在使用Play1.2.4中的Java开发一个应用程序。我让控制器B扩展控制器A。这是否意味着控制器B从A继承操作?如果是这样,我如何路由到那些没有直接路由到控制器A的设备

例如:

public class ControllerA {
    private static void action{
        //I want to run this
    }
}


public class ControllerB extends ControllerA {

}

我能这样叫动作吗:
ControllerB.action

如果我记得清楚的话。但是,更好的做法是使用@With注释,而不是扩展控制器

public class Application extends Controller {
    @Before
    static void preAction() {
       Logger.info("Request: [%s]", request);
    }

    public static void login() {
       render();
    }
}


@With(Application.class)
public class Bookings extends Controller {
...
}

我不确定这在Play1中是否可能/容易做到,但在Play2.x中,您可以使用像GoogleGuice这样的DI框架。这将允许您在不使用静态方法的情况下创建单例控制器,因此继承将照常工作。