MyBatis3를 사용해 본 사람들은 왜 MyBatis의 Mapper 인터페이스에 구현 클래스가 없는데 직접 사용할 수 있는지 궁금할 것입니다.
MyBatis는 Java 동적 프록시로 구현된 인터페이스를 사용하기 때문입니다.
여기에는 원리를 설명하기 위한 간단한 예가 있습니다. 이는 MyBatis에만 국한된 것이 아닙니다. 이 아이디어를 다른 곳에도 적용할 수 있습니다.
여기서 invoke
方法简单说说MyBatis的实现原理,在该方法中,我们通过Method能够获取接口和方法名,接口的全名相当于MyBatis XML中的namespace
,方法名相当于具体一个方法中的id
。也就是说通过动态代理后,可以通过SqlSession
来通过namespace.id
메서드에 해당하는 메서드를 호출합니다. 인터페이스를 사용하는 것이 더 편리하지만 간접적인 방법입니다.
이 팩토리 클래스는 모든 인터페이스에 대한 동적 프록시 클래스를 생성할 수 있습니다.
일반적으로 동적 에이전트의 경우 일반적으로 트랜잭션, 로그 또는 기록 방법 실행 효율성 및 기타 애플리케이션을 처리하는 데 사용됩니다. 이는 모두 구현 전 또는 구현 후 클래스 메서드의 특수 처리입니다.
이 기사를 통해 실제로 다른 응용 프로그램 방향을 볼 수 있습니다. 즉, 클래스를 구현할 필요가 없으며 인터페이스 메서드가 동적 프록시를 통해 직접 실행됩니다. MyBatis는 이 메서드를 사용하여 메서드를 쉽게 호출할 수 있습니다. 이 아이디어를 활용하면 더 나은 디자인을 만들 수 있을 것입니다.
원문:
위 내용은 [전송] MyBatis 인터페이스의 간단한 구현 원리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!