2014-12-30 7 views
3

나는 봄 문서를 읽고, 그리고 난 생성자 인수 이름이 (바이트 코드가 있었다 일반적으로 경우에 사용할 수없는 드문 경우를 들어 c-namespace section in the reference documentC-네임 스페이스 섹션

에서 문 아래로 이해할 수 없었다 은, 하나는 인수 인덱스

내 질문에

로 대체 사용할 수 있습니다) 디버깅 정보없이 컴파일 :

  1. constructor 인수를 사용할 수없는 경우가 있습니다.
  2. -byte 코드가 디버깅 정보없이 컴파일된다는 것은 무엇을 의미합니까? 그것은 일식을 사용하여 확인할 수 있습니까?

웹을 통해 확인 중이지만 참조 할 수 있습니다. 나는 Constructor injection using c:namespace을 발견하지만, 어떤 일 문제의 클래스가 -g 플래그 ("디버그 정보"- javac docs 참조)없이 javac에 의해 컴파일 된 경우

답변

2

생성자의 인수 이름 만 사용할 수 있습니다 참조하십시오. javac을 사용할 때 이것은 -g:vars 옵션입니다. Eclipse에서는 Windows > Preferences > Java > Compiler > Add variable attributes to generated class files입니다.

2

설명하지 않은 다음 컴파일 된 클래스의 바이트 코드의 이름을 포함하지 않습니다를 생성자 매개 변수. 이것은 Spring이 리플렉션을 사용하여 생성자 매개 변수 이름을 일치시킬 수 없으므로 대신 위치 (즉 인덱스)로 삽입해야한다는 것을 의미합니다.

디버그 정보가 제공되도록 컴파일 된 바이트 코드를 생성하는 빌드 환경을 구현합니다. 일단 코드가 컴파일되면, 다시 컴파일 할 필요없이 그 정보를 검색 할 수있는 방법은 없습니다.

클래스가 변수 디버깅 정보로 컴파일되는 경우도 What does the javac debugging information option -g:vars do?