当前位置: 首页 > 知识库问答 >
问题:

在endpoint无效的情况下Spring boot rest api未失败

杭令
2023-03-14
@RestController("api/v1/users")
public class UserController {

    @Autowired
    UserService userService;

    @PostMapping
    public User saveUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @GetMapping
    public List<User> getUsers(@RequestParam(required = false) String pageNumber, String pageSize, String role, String status) {
        return userService.findAll(pageNumber, pageSize, role, status);
    }

}

当我使用request-url访问api时

http://localhost:8080/api/v1/users?pageNumber=0&pageSize=6&role=admin

它的工作很完美

但如果我将urlendpoint更改为某个无效endpoint,如

http://localhost:8080/api/v1/hhh?pageNumber=0&pageSize=6&role=admin

2019-12-28 19:16:47.601 DEBUG 5591---[nio-8080-exec-5]o.s.s.w.u.matcher.antPathRequestMatcher:检查请求的匹配:“/api/v1/hhh”;针对“/API/V1/Factuals”

2019-12-28 19:16:47.601 DEBUG 5591---[nio-8080-exec-5]o.s.s.w.u.matcher.antPathRequestMatcher:检查请求的匹配:“/api/v1/hhh”;针对“/api/v1/admin”

2019-12-28 19:16:47.601 DEBUG 5591---[nio-8080-exec-5]o.s.s.w.u.matcher.antPathRequestMatcher:检查请求的匹配:“/api/v1/hhh”;针对“/api/v1/users”

2019-12-28 19:16:47.602 TRACE 5591---[nio-8080-exec-5]S.W.S.M.M.A.RequestMappingHandlerMapping:映射到公共java.util.list com.asset.app.user.userController.getUsers(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)

2019-12-28 19:16:47.602跟踪5591---[nio-8080-exec-5].w.s.m.m.a.ServletInvoCableHandlerMethod:参数:[0,6,admin,null]

我觉得Spring缓存了endpointurl,如果找不到匹配,就使用它

知道怎么阻止这一切吗?

共有1个答案

邵逸明
2023-03-14

如果您阅读了@RestController的api文档

您会看到注释构造函数接受一个value,该值被描述为:

该值可以指示逻辑组件名称的建议,在自动检测组件的情况下将其转换为Spring bean

@RestController("api/v1/users")
@RestController
@RequestMapping("/api/v1") // Add request mapping
public class FooBar {

    @PostMapping("/users") // Add mapping here
    public User bar() {
        ...
    }

    @GetMapping("/users") // Add mapping here
    public List<User> foo() {
        ...
    }
}
 类似资料:
  • 主要内容:1.访问权限问题,2.方法被final修饰,3.方法内部调用,4.未被spring管理,5.多线程调用,6.表不支持事务,7.未开启事务,8.错误的传播特性,9.被异常吞并了,10.手动抛了别的异常,11.自定义了回滚异常,12.嵌套事务回滚多了,13.大事务问题,14.编程式事务1.访问权限问题 在add方法上面的权限是private,事务失效 说白了,在AbstractFallbackTransactionAttributeSource类的computeTransactionAtt

  • 我正在windows(7.3版)上安装gvim。启动后,我希望设置变量MYVIMRC,但它没有设置。有没有理由不设定。 有一个vimrc文件,因为许多设置与默认设置不同。 我用检查了MYVIMRC的值 gvim可执行文件位于c:\workarea\Vim\vim73中,c:\workare\Vim中的*\u vimrc*(在gvim启动时读取)。启动gvim后,我可以使用 对于版本:我发现系统vi

  • 本文向大家介绍c++迭代器失效的情况汇总,包括了c++迭代器失效的情况汇总的使用技巧和注意事项,需要的朋友参考一下 一、序列式容器(数组式容器) 对于序列式容器(如vector,deque),序列式容器就是数组式容器,删除当前的iterator会使后面所有元素的iterator都失效。这是因为vetor,deque使用了连续分配的内存,删除一个元素导致后面所有的元素会向前移动一个位置。所以不能使用

  • 我有一个有两条消息的参与者,第一个负责在mongoDB中插入数据,第二个参与者负责在elasticsearch、InserInMongo和Inserins中插入数据。也就是说,当mongoDB插入操作失败或ES插入操作因某些异常而失败时,会出现这种情况,我正在做类似的事情 在这里,我想如果mongoFuture失败,那么我抓住它的异常,它应该继续与esFuture 或者如果两个未来都失败了,我得到

  • 我有以下项目结构: null 谢了。

  • 我在一个Spray应用程序中使用ask模式调用一个Actor,并将结果作为HTTP响应返回。我将故障从参与者映射到自定义错误代码。 当authActor发送一个失败时,这可以正常工作,但是如果authActor抛出一个异常,则在请求超时完成之前什么也不会发生。例如: 这样,如果它是预期的错误(即ServiceException),则通过创建一个失败来处理它。如果它是意外的,它会立即返回一个失败,以