1. 程式人生 > >Springboot 外掛lombok安裝使用及帶cookie的post介面開發

Springboot 外掛lombok安裝使用及帶cookie的post介面開發

先安裝外掛

配置註解處理器

新增pom檔案中依賴

         <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.14</version>
        </dependency>
/**使用註解@Data*/
@Data
public class User {
    private String name;
    private String age;
    private String sex;
}

主要使用getter and setter   ToString 這些都不用寫,java bean的一個簡寫,在方法上面加一個註解,@Data

實現post介面

@RestController
@Api(value = "/",description = "這是我的全部post請求")
/**如果在類上的RequestMapping上加了路徑,代表下面的所有路徑前都要帶上這個*/
@RequestMapping("/v1")
public class MyPostMethod {
    /**這個變數是用來裝我的cookie資訊的*/
    public static Cookie cookie;
    /**使用者登入獲取到cookies,然後再訪問其他介面獲取到列表*/

    @RequestMapping(value = "/login",method = RequestMethod.POST)
    @ApiOperation(value = "登入介面,成功後獲取cookie資訊",httpMethod = "POST")
    /**value裡的值對應的是前端的名,可以跟後端的名字不一致,不一致
     * 的話,就會起到安全作用,防止猜到資料庫裡的欄位名
     * required如果是true是代表必須傳
     */
    public String login(HttpServletResponse response,
                        @RequestParam(value = "userName",required = true) String userName,
                        @RequestParam(value = "password",required = true) String password){
        if(userName.equals("xiaoqiang")&& password.equals("123456")){
            Cookie cookie = new Cookie("login","true");
            response.addCookie(cookie);
            return "恭喜您登入成功!";
        }
        return "您的賬號或密碼錯誤";
    }

    @RequestMapping(value = "/getUserList",method = RequestMethod.POST)
    @ApiOperation(value = "獲取使用者列表",httpMethod = "POST")
    public String getUserList(HttpServletRequest request,
                            @RequestBody User u){
        User user;
        /**獲取cookie*/
        Cookie[] cookies = request.getCookies();
        /**驗證cookies是否合法*/
        /**User裡面沒有寫getter setter方法,用lombok外掛,和註解@Data,就可以*/
        for (Cookie c: cookies){
            if(c.getName().equals("login")
                    && c.getValue().equals("true")
                    &&u.getUserName().equals("xiaoqiang")
                    &&u.getPassword().equals("123456")
                    ){
                user = new User();
                user.setName("小李");
                user.setAge("12");
                user.setSex("man");
                return  user.toString();
            }
        }
        return "引數不合法";
    }

}

jmeter,修改jmeter.properties,檔案中改為true,CookieManager.save.cookies=true ,在debugsample裡可以看到獲取的cookie。也可用postman來驗證介面。