Введение в Mybatis
Mybatis - это проект с открытым исходным кодом Apache. В 2010 году этот проект был перенесен от Apache Software Foundation в Google Code и был переименован в Mybatis. Он поддерживает превосходные структуры упорных слоев для обычных запросов SQL, хранимых процедур и расширенного картирования. Mybatis устраняет ручные настройки почти всех кодов JDBC и параметров и поиск наборов результатов. Mybatis использует простые XML или аннотации для конфигурации и оригинального отображения для карты интерфейсов и Pojos Java (простые старые объекты Java) в записи в базе данных.
Введение в Mybatis receptor
Mybatis обеспечивает функцию плагина. Хотя он называется плагином, это на самом деле функция перехвата. Mybatis позволяет вам перехватывать вызовы в определенную точку во время выполнения сопоставленного оператора. Mybatis предоставляет нам интерфейс Interceptor, реализуя этот интерфейс, мы можем определить наш собственный перехватчик.
Mybatis называет четыре типа методов по умолчанию:
1.Executor (обновление, запрос, промывка, коммит, откат, getTransaction, Close, Isclose)
2. ParameterHandler (getParameterObject, SetParameters)
3. Resultsethandler (Handleresultsets, HarderTputParameters)
4. StatementHandler (подготовьте, параметризуйте, партии, обновление, запрос)
Вышеуказанные 4 являются методами конфигурации. Эти методы будут выполняться в операции Mybatis (добавить, удалить, модифицировать и запросить). Порядок выполнения - исполнитель, параметры, результаты, результаты и оператора.
Определение интерфейса:
Среди этих трех методов плагин используется для построения процессора, Intercept используется для обработки классов прокси, а настройки свойства свойства перехвата SetProperties.
Класс плагинов реализует интерфейс InvocationHandler и возвращает собственный класс динамического прокси JDK. Для метода завершения плагина:
Определите, имеет ли текущий целевой объект интерфейс, который необходимо перехватить. Если нет, он возвращает сам целевой объект, и если есть, он возвращает прокси -объект.
Vocationhandler прокси -объекта - это плагин. Когда целевой объект выполняет метод интерфейса, если он выполняется через объект Proxy, будет вызван метод Invoke of the InvocationHandler, который является методом плагина.
Если выполняемый в настоящее время метод является определенным методом, который необходимо перехватить, целевой объект, метод для выполнения, и параметры метода инкапсулируются в объект вызова, а инкапсулированный вызов передается в виде параметров методу перехвата текущего перехвата. Если нет необходимости перехватывать, текущий метод вызывается напрямую.
Для метода GetSignatureMap
Getsignaturemap сначала получит аннотацию перехвата перехвата, пройдя его, чтобы получить атрибут типа, а затем получить метод с атрибутом метода и атрибута Args на основе этого типа, и, наконец, вернет карту с ключом типа и набором значений <Метод>. Примеры: фильтрация метода обновления executor.class будет создавать ключ как executro и значение в качестве экземпляра метода, с параметрами, соответствующими методам сопоставления и методам метода.
Конфигурируемость перехвата: