[SPRING] Spring이 디버그 정보없이 매개 변수 이름을 얻는 방법
SPRINGSpring이 디버그 정보없이 매개 변수 이름을 얻는 방법
@RequestMapping("/form")
public String form(Model model, Integer id)
예를 들어, spring은 매개 변수 id의 이름이 id이고 런타임에 바인딩 요청 param의 값을 알 수 있습니다.
해결법
-
==============================
1.이것은 JDK 8에 도입 된 javac의 기능입니다. 활성화하려면 -parameters javac 명령 행 옵션을 포함해야합니다. 그러면 다음과 같은 매개 변수 이름을 가져올 수 있습니다.
이것은 JDK 8에 도입 된 javac의 기능입니다. 활성화하려면 -parameters javac 명령 행 옵션을 포함해야합니다. 그러면 다음과 같은 매개 변수 이름을 가져올 수 있습니다.
String name = String.class.getMethod("substring", int.class).getParameters()[0].getName() System.out.println(name);
Spring 문서에서 3.3 Java 8 (6과 7뿐만 아니라)
ParameterNameDiscoverer 클래스의 javadoc에 지정된대로 :
이것은 Spring 프로젝트의 JIRA 관련 항목에 대한 링크입니다. 메소드 및 생성자에 대한 Java 8 매개 변수 이름 검색
JDK 향상 제안 JEP 118 : 런타임에 매개 변수 이름에 액세스
-
==============================
2.그것은 당신을 위해 그것을하는 WebDataBinder입니다.
그것은 당신을 위해 그것을하는 WebDataBinder입니다.
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/WebDataBinder.html
API에서 볼 수 있듯이 WebDataBinder는 웹 요청 매개 변수에서 JavaBean 객체로의 데이터 바인딩을위한 것입니다.
WebDataBinder는 유효성 검사와 변환을 담당하기 때문에 편집기 나 유효성 검사기를 사용자 정의한 경우 컨트롤러의 webDataBinder에 추가해야합니다.
@Controller public class HelloController { @InitBinder protected void initBinder(WebDataBinder binder) { binder.setValidator(yourValidator); binder.registerCustomEditor(the clazz to conver to.class, "the name of the parameter", yourEditor); } ...
자세한 내용은 문서를 확인해야합니다.
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html
from https://stackoverflow.com/questions/36466913/how-spring-gets-parameter-names-without-debug-information by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring MVC를 사용하여 서버 디렉토리에 파일 업로드 (0) | 2019.02.20 |
---|---|
[SPRING] 대량 할당 문제를 해결하는 방법 : 불안정한 바인더 구성 (API Abuse, Structural) in java (0) | 2019.02.20 |
[SPRING] FlatFileItemReader 및 청크를 사용하여 CSV에서 빈 줄을 건너 뛰는 방법 (0) | 2019.02.20 |
[SPRING] Spring Data Cassandra를 사용하여 java.util.Date 값을 Cassandra 날짜 유형 컬럼에 삽입하는 방법? (0) | 2019.02.19 |
[SPRING] 스프링 보안 원형 빈 의존성 (0) | 2019.02.19 |