仅在第一次请求时,春季的TTFB时间很长

时间:2017-03-31 19:07:08

标签: java spring eclipse

我有一个Spring 4.3.6应用程序在后端运行,前端有Angular 2。每次初始化服务器后,服务器响应的第一个请求与后续请求相比具有高TTFB(第一个字节的时间)。TTFB delay on the first request

我在第一次请求时验证了我在计算机处理器中获得了高峰。下面是我在UserController中的登录方法:

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@RequestBody Map<String, String> json) throws ServletException {

    if (json.get("stUserLogin") == null || json.get("stUserPassword") == null) {
        throw new ServletException("...");
    }

    String userLogin = json.get("stUserLogin");
    String userPassword = json.get("stUserPassword");

    UserBean userBean = userService.findByUserLogin(userLogin);

    if (userBean == null) {
        throw new ServletException("...");
    }

    if (!userPassword.equals(userBean.getStUserPassword())) {
        throw new ServletException("...");
    }

    return Jwts.builder().setSubject(userLogin).claim("roles", "user").setIssuedAt(new Date())
            .signWith(SignatureAlgorithm.HS256, "secretkey").compact();
}

这是我的UserService的查找用户方法:

@Override
public UserBean findByUserLogin(String stUserLogin) {
    return userDAO.findByStUserLogin(stUserLogin);
}

最后我的DAO方法:

UserBean findByStUserLogin(String stUserLogin);

在第一次请求时,我验证了服务方法中花费了大量的毫秒数,但我仍然不清楚所有这些背后的原因。

值得一提的是,每种映射方法都会发生这种情况,但会有不同的尺度。

我不知道我是否提供了有关此问题的足够信息。任何帮助都会很受欢迎,请提前感谢。

0 个答案:

没有答案