【发布时间】:2023-04-01 15:27:01
【问题描述】:
我有一个基本的 SpringBoot 2.1.3.RELEASE 应用程序。使用 Spring Initializer、JPA、嵌入式 Tomcat、Thymeleaf 模板引擎,并打包为可执行的 JAR 文件。
我有这个 restController
@RestController
@RequestMapping("/api/v1/users")
public class UserResourceController extends ResourceController {
private static final Logger LOG = LoggerFactory.getLogger(UserResourceController.class);
@GetMapping(path = "/", consumes = "application/json", produces = "application/json")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<User> getUser(@RequestHeader(value = "Authorization") String authHeader) {
User user = authUserOnPath("/users", authHeader);
user.getApplicationSetup()
.setExchangeRateWithUSD(currencyService.getUSDRate(user.getApplicationSetup().getAppCcy()));
return ResponseEntity.ok().body(user);
}
}
还有这个:
@RestController
@RequestMapping("/api/v1/users/wallets")
public class WalletResourceController extends ResourceController {
@Autowired
private WalletService walletService;
/**
* Get user's wallets
*
* @param request
* @param id
* @return
*/
@GetMapping(path = "/", consumes = "application/json", produces = "application/json")
public ResponseEntity<List<Wallet>> getUserWallets(@RequestHeader(value = "Authorization") String authHeader) {
User user = authUserOnPath("/users/wallets", authHeader);
List<Wallet> wallets = userService.getWallets(user);
return ResponseEntity.ok().cacheControl(CacheControl.maxAge(5, TimeUnit.MINUTES)).body(wallets);
}
访问时一切正常:
GET http://127.0.0.1:1133/myApp/api/v1/users
但我在访问时收到 404:
GET http://127.0.0.1:1133/myApp/api/v1/users/wallets
【问题讨论】:
-
它们在不同的包中吗?如果是这样,两个包是否都设置为由 Spring 扫描以获取请求映射?
-
它们在同一个包中
-
尝试将它们组合成一个类,将“wallets”端点移动到另一个 RestController 中,并将其 Get Mapping 更改为“/wallet”。
标签: java rest spring-boot