Могу ли я легко повторно использовать сопоставление URL-адресов в springboot в качестве настройки?

avatar
JinYeong Kim
9 августа 2021 в 02:14
62
1
0

У меня есть три метода с аннотацией getMapping в этом коде.
На самом деле у меня больше методов.
Они повторяются. Поэтому я хочу зарегистрировать эти URL-адреса в качестве настройки.
Есть хороший способ? Тогда дайте мне знать.

package refill.station.controller.user;

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

@RestController
@RequiredArgsConstructor
@RequestMapping("/user")
public class MemberController {

    @GetMapping("id")
    public ModelAndView id(ModelAndView mav) {
        mav.setViewName("user/id");
        return mav;
    }

    @GetMapping("pw")
    public ModelAndView pw(ModelAndView mav) {
        mav.setViewName("user/pw");
        return mav;
    }

    @GetMapping("signUp")
    public ModelAndView signUp(ModelAndView mav) {
        mav.setViewName("user/signUp");
        return mav;
    }
}
Источник
GeertPt
9 августа 2021 в 14:31
0

Вы имеете в виду в качестве настройки? В файле свойств? Или где-то поделились в java-коде?

JinYeong Kim
13 августа 2021 в 09:26
0

Я хочу настроить их где-то в общем коде Java - @greyfairer

Ответы (1)

avatar
GeertPt
17 августа 2021 в 09:47
0

Это аннотации, поэтому вы не можете использовать для этого локальные переменные. Однако вы можете использовать константы, например

.
public static final String ID_PATH = "id"
public static final String PW_PATH = "pw"
public static final String SIGN_UP_PATH = "signUp"

@GetMapping(ID_PATH)
public ModelAndView id(ModelAndView mav) {
    mav.setViewName("user/"+ID_PATH);
    return mav;
}

Вы также можете использовать заполнители свойств, например. когда foo.bar определено в application.properties:

@GetMapping("${foo.bar}")

Вообще, следует подумать, действительно ли это необходимо? Вы используете эти пути во многих местах? Если нет, лучше не делать это более сложным, чем необходимо.