Java 如何为每个控制器设置不同的基本url
将行Java 如何为每个控制器设置不同的基本url,java,spring-boot,rest,controller,Java,Spring Boot,Rest,Controller,将行spring.data.rest.basePath=/api添加到我的application.properties文件中,使得每个端点都以/api开头 最重要的是,我希望每个控制器“增加”这个url。例如,假设我有两个不同的控制器,CustomerController和ProviderController 如果我在这两个函数中定义: //CustomerController @Autowired private CustomerService service; @GetMapping(&q
spring.data.rest.basePath=/api
添加到我的application.properties
文件中,使得每个端点都以/api
开头
最重要的是,我希望每个控制器“增加”这个url。例如,假设我有两个不同的控制器,CustomerController
和ProviderController
如果我在这两个函数中定义:
//CustomerController
@Autowired
private CustomerService service;
@GetMapping("/getById/{id}")
public Customer findCustomerById(@PathVariable int id) {
return service.getCustomerById(id);
}
//ProviderController
@Autowired
private ProviderService service;
@GetMapping("/getById/{id}")
public Provider findProviderById(@PathVariable int id) {
return service.getProviderById(id);
}
我希望第一个是/api/customer/getById/{id}
,第二个是/api/provider/getById/{id}
是否有任何方法可以实现这一点,而无需在每个注释上手动键入
谢谢。您可以在控制器上使用
@RequestMapping(“/example/url”)
注释
@Controller
@RequestMapping("/url")
class HomeController() {}
您可以在控制器上使用
@RequestMapping(“/example/url”)
注释
@Controller
@RequestMapping("/url")
class HomeController() {}
是的,您可以提取路径的公共部分并将其放入控制器上的
@RequestMapping
:
@RestController
@请求映射(“/api/customer”)
公共类客户控制器{
// ...
@GetMapping(“/getById/{id}”)
公共客户findCustomerById(@PathVariable int-id){
返回服务.getCustomerById(id);
}
}
及
@RestController
@请求映射(“/api/provider”)
公共类提供程序控制器{
// ...
@GetMapping(“/getById/{id}”)
公共提供程序findProviderById(@PathVariable int-id){
返回服务.getProviderById(id);
}
}
是的,您可以提取路径的公共部分并将其放入控制器上的@RequestMapping
:
@RestController
@请求映射(“/api/customer”)
公共类客户控制器{
// ...
@GetMapping(“/getById/{id}”)
公共客户findCustomerById(@PathVariable int-id){
返回服务.getCustomerById(id);
}
}
及
@RestController
@请求映射(“/api/provider”)
公共类提供程序控制器{
// ...
@GetMapping(“/getById/{id}”)
公共提供程序findProviderById(@PathVariable int-id){
返回服务.getProviderById(id);
}
}
只需再次检查即可。如果我这样做,我将覆盖属性文件上的定义,对吗?我可以做@RequestMapping(“/api2/customer”)
?是的。因此,在这种情况下,您的实际端点路径将是/api2/customer/getById/{id}
@LuisFernandez。控制器上的@RequestMapping
对于版本控制非常有用。通过简单地将api
更改为api2
,创建具有不同基本路径的另一个类要容易得多。只需重复检查。如果我这样做,我将覆盖属性文件上的定义,对吗?我可以做@RequestMapping(“/api2/customer”)
?是的。因此,在这种情况下,您的实际端点路径将是/api2/customer/getById/{id}
@LuisFernandez。控制器上的@RequestMapping
对于版本控制非常有用。通过简单地将api
更改为api2
,创建具有不同基本路径的另一个类要容易得多。