PHP 편집자 Baicao는 "@Bind가 필요합니까?"라는 일반적인 질문에 답하기 위해 왔습니다. 초보자를 위한 @Bind는 일부 프레임워크와 라이브러리에서 사용되는 일반적인 주석입니다. 그러나 PHP에서는 @Bind 주석을 사용할 필요가 없습니다. PHP는 동적 언어이므로 함수나 메서드 매개변수의 명시적인 바인딩이 필요하지 않습니다. 함수와 메소드의 매개변수는 호출 시 전달된 실제 매개변수에 따라 바인딩됩니다. 따라서 PHP에서는 매개변수 바인딩에 @Bind 주석을 사용할 필요가 없습니다. 도움이 되었으면 좋겠습니다!
스프링부트 프로젝트에서는 아래와 같이 쿼리에 매개변수를 바인딩할 필요가 없다는 사실을 우연히 발견했습니다.
으아악이것은 작동합니다:
으아악그러나 3.43.0을 사용하기 위해 다른 프로젝트(스프링 부트 프로젝트 아님)를 업그레이드할 때 바인딩을 제거할 수 없었습니다.
스프링 부트 프로젝트에서는 바인딩 없이 쿼리가 작동하지만 일반 Java 프로젝트에서는 작동하지 않는 이유를 잘 설명할 수 있는 사람이 있습니까? (명백한 설명 외에도 마술). 바인딩을 건너뛰는 데 사용할 수 있는 트릭이 있나요?
이 주석은 javac 플래그-parameters
를 사용하여 코드를 컴파일할 때만 생략할 수 있습니다. 첫 번째 프로젝트는 해당 플래그로 컴파일되고 다른 프로젝트는 그렇지 않을 수도 있습니다.
-parameters
标志。如果使用该标志,则方法的变量名称将在运行时可用于反射。当JDBI可以通过反射推断变量名为id
时,不需要@Bind
注解来明确它是针对查询参数id
플래그는 Java 8에서 도입되었습니다. 이 플래그를 사용하면 메서드의 변수 이름을 런타임 시 리플렉션에 사용할 수 있습니다. JDBI가 리플렉션을 통해 변수 이름 id
를 추론할 수 있는 경우 쿼리 매개변수 id@Bind
주석이 필요하지 않습니다. /코드>.
참조 문서의 해당 섹션도 확인하세요: https://www.php.cn/link/8012c0dd4aa84ef92dfa2de0c7163b5a
위 내용은 @Bind가 필요하신가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!