我的项目正在从自定义json格式转向json-hal和spring-data-rest。为了继续支持“旧”json,我想运行现有的资源控制器,并行于新的Spring-Data-Rest提供。
每当我配置spring-data-rest使用与现有控制器相同的url时,只使用旧的控制器,如果accept-header不匹配,我会得到一个错误响应。当我使用不同的网址时,一切正常
是否可以与spring data rest one并行运行控制器,并基于Accept标头进行响应?
旧控制器:
@RepositoryRestController
@RequestMapping(value = "/api/accounts", produces = {"application/custom.account+json"})
public class AccountResource {
@RequestMapping(method = RequestMethod.GET)
@PreAuthorize("#oauth2.hasScope('read') and hasRole('ROLE_ADMIN')")
public ResponseEntity<List<Account>> getAll(
@RequestParam(value = "page", required = false) Integer offset,
@RequestParam(value = "per_page", required = false) Integer limit,
@RequestParam(value = "email", required = false) String email
) throws URISyntaxException {
...
}
}
< code > @ repository rest controller 在类型级别上与< code>@RequestMapping不兼容。第一步,通过从RequestMapping中删除< code>produces参数(我在这里使用GetMapping快捷方式),确保您实际上设法捕获了请求。我还删除了@PreAuthorize注释,因为它现在不相关,并引入了一个参数来捕捉< code>Accept头值(用于调试):
@RepositoryRestController
public class AccountResource {
@GetMapping(value = "/api/accounts")
public ResponseEntity<List<Account>> getAll(
@RequestParam(value = "page", required = false) Integer offset,
@RequestParam(value = "per_page", required = false) Integer limit,
@RequestParam(value = "email", required = false) String email,
) throws URISyntaxException {
...
}
}
有了这个,你应该能够随意自定义GET /api/accounts,并且仍然受益于Spring Data Rest自动提供的POST/PUT/PATCH... /api/accounts,并且还断言内容类型
如果它按预期工作,那么您可以:
这给了你:
@RepositoryRestController // NO MAPPING AT THE TYPE LEVEL
public class AccountResource {
@GetMapping(value = "/api/accounts", // Mapping AT THE METHOD LEVEL
produces = "application/custom.account+json") // the content-type this method answers to
@PreAuthorize("#oauth2.hasScope('read') and hasRole('ADMIN')") // ROLE is 'ADMIN' not 'ROLE_ADMIN'
public ResponseEntity<List<Account>> getAll(
@RequestHeader("Content-Type") String contentType,
@RequestParam(value = "page", required = false) Integer offset,
@RequestParam(value = "per_page", required = false) Integer limit,
@RequestParam(value = "email", required = false) String email,
) throws URISyntaxException {
...
}
}
现在:
null 问题 null
我想在类中与数据提供者并行运行测试方法。我需要一个数据提供者,它每次在新测试方法开始为给定的测试运行生成部分动态数据之前都会被调用。让我用伪代码解释一下: 我怎样才能做到这一点?
我有许多应用程序正在使用SpringBoot执行器将度量发布到/metricsendpoint。 我有一些其他应用程序也在使用Micrometer将度量发布到/Prometheusendpoint。 最后,我有一个云提供商,它只允许我从一个endpoint提取度量。他们有许多预先准备好的Grafana仪表板,但大多数是针对执行器变量名的。有些是针对千分尺变量名的。 千分尺输出相同的数据,但它使用的
有两个测试类,每个都有一个使用并行模式下的数据提供程序的测试方法。 测试运行的持续时间是使用BeforeSuite和AterSuite中确定的时间计算的。 案例1-在没有任何线程并行设置的情况下运行。 这给出了以下结果。 前两行从属于FirstNg类的dataprovider开始。这将成对重复(等于数据提供程序线程计数的值),然后使用SecondNg类的数据提供程序。 案例2-使用方法的线程并行设
我有一个并行CRC-32计算器的VHDL代码,需要8字节的输入数据一次。我将称之为“CRC_32_8”模块。
null 这就是我的情况: