繁体   English   中英

是否可以将控制器/控制器作为内部类嵌套在Spring 4 MVC中?

[英]Is it possible to nest controllers/have controllers as inner classes in Spring 4 MVC?

我希望有一个映射到/site/的控制器,并在两个不同的控制器中看起来像:

@Controller
@RequestMapping(value="/api")
public class ApiController {
    @Controller
    @RequestMapping(value="/foo")
    public class FooController {
        //Some /foo/* methods here
    }

    @Controller
    @RequestMapping(value="/bar")
    public class BarController {
       //Some /bar/* methods here
    }

    //Other methods that don't match /foo or /bar
}

这是可以的,或者更好的做法是将它分成两个独立的控制器/site/foo/site/bar映射?

您应该使用方法而不是映射的类。 代码应该像这样写

@Controller
@RequestMapping(value="/site")
public class ApiController {
    @RequestMapping(value="/foo", method=RequestMethod.GET)
    public String doFoo {
        // Foo Logic
        return "Running Foo";
    }
    @RequestMapping(value="/bar", method=RequestMethod.GET)
    public String doBar {
        // Bar Logic
        return "Running Bar";
    }
}

将类层次结构绑定到资源层次结构不应该是此处的主要设计驱动程序。

在Spring MVC中,控制器是简单的POJO,使它们易于测试,组合比继承更受青睐,注释用于传达含义并使代码更具可读性。

控制器下的嵌套控制器击败了其中的几个目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM