在不同的服务中有一个通用的变量路径

cyvaqqii  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(384)

我与注解@requestmapping有两个接口:

@RestController
@RequestMapping("/users")
    public interface UserRestService{}

@RestController
@RequestMapping("/clients")
public interface ClientRestService{}

它们都有管理用户和客户机的方法。
我已经用属性定义了初始路径:

servlet:
    context-path: /api

现在,我想用路径参数/v1/tenant/{tenant}/定义一个公共路径,因此服务的完整url将是:/api/v1/tenant/{tenant}/users/api/v1/tenant/{tenant}/clients
我已经尝试过让这两个接口扩展一个公共接口和一个注解,但是运气不好。如果不为每个接口定义完整的路径,我怎么做呢?

z6psavjg

z6psavjg1#

你可以定义 /v1/tenant/{tenant} 作为属性文件中的条目。然后,你可以这样注射它:

@RestController
@RequestMapping("${my.common.path}/clients")`
public interface ClientRestService{}

@RestController
@RequestMapping("${my.common.path}/users")`
public interface UserRestService{}

属性文件:

my.common.path = /v1/tenant/{tenant}

最后,要从任一控制器访问方法中的路径变量,可以执行以下操作:

@GetMapping("/")
public String test(@PathVariable String tenant) {

        return tenant;
}

相关问题