{"id":17536,"date":"2024-03-15T15:10:14","date_gmt":"2024-03-15T15:10:14","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/"},"modified":"2024-03-21T11:08:25","modified_gmt":"2024-03-21T11:08:25","slug":"what-is-the-implementation-principle-of-mybatis-interceptors","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/","title":{"rendered":"What is the implementation principle of MyBatis interceptors?"},"content":{"rendered":"<p>The implementation principle of MyBatis interceptors is based on Java&#8217;s dynamic proxy technology. Specifically, MyBatis interceptors use JDK&#8217;s dynamic proxy or CGLib&#8217;s dynamic proxy to generate proxy objects, and then intercept and enhance methods within the proxy object.<\/p>\n<p>When an SQL is executed, MyBatis will first call the intercept method of each interceptor in the interceptor chain one by one. In the intercept method, the interceptor can use reflection to obtain the target object (the implementation class of the Mapper interface) and information about the target method. Then, the interceptor can perform some custom operations before, after, or when an exception is thrown in the target method based on its own needs, such as intercepting SQL statements, modifying parameters, adding logs, etc.<\/p>\n<p>Interceptors can enhance or modify SQL statements by modifying the parameters or return values of the target method. Interceptors can also terminate the execution of the target method to achieve special functions such as caching query results or limiting the number of query results.<\/p>\n<p>In conclusion, the implementation principle of MyBatis interceptors is to generate proxy objects through dynamic proxy and intercept and enhance methods in the proxy object. This design pattern allows MyBatis interceptors to be very flexible in extending and customizing their functionality to meet different needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The implementation principle of MyBatis interceptors is based on Java&#8217;s dynamic proxy technology. Specifically, MyBatis interceptors use JDK&#8217;s dynamic proxy or CGLib&#8217;s dynamic proxy to generate proxy objects, and then intercept and enhance methods within the proxy object. When an SQL is executed, MyBatis will first call the intercept method of each interceptor in the [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-17536","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the implementation principle of MyBatis interceptors? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the implementation principle of MyBatis interceptors?\" \/>\n<meta property=\"og:description\" content=\"The implementation principle of MyBatis interceptors is based on Java&#8217;s dynamic proxy technology. Specifically, MyBatis interceptors use JDK&#8217;s dynamic proxy or CGLib&#8217;s dynamic proxy to generate proxy objects, and then intercept and enhance methods within the proxy object. When an SQL is executed, MyBatis will first call the intercept method of each interceptor in the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T15:10:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T11:08:25+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Isabella Edwards\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"What is the implementation principle of MyBatis interceptors?\",\"datePublished\":\"2024-03-15T15:10:14+00:00\",\"dateModified\":\"2024-03-21T11:08:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/\"},\"wordCount\":222,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/\",\"name\":\"What is the implementation principle of MyBatis interceptors? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T15:10:14+00:00\",\"dateModified\":\"2024-03-21T11:08:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the implementation principle of MyBatis interceptors?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the implementation principle of MyBatis interceptors? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/","og_locale":"en_US","og_type":"article","og_title":"What is the implementation principle of MyBatis interceptors?","og_description":"The implementation principle of MyBatis interceptors is based on Java&#8217;s dynamic proxy technology. Specifically, MyBatis interceptors use JDK&#8217;s dynamic proxy or CGLib&#8217;s dynamic proxy to generate proxy objects, and then intercept and enhance methods within the proxy object. When an SQL is executed, MyBatis will first call the intercept method of each interceptor in the [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T15:10:14+00:00","article_modified_time":"2024-03-21T11:08:25+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"What is the implementation principle of MyBatis interceptors?","datePublished":"2024-03-15T15:10:14+00:00","dateModified":"2024-03-21T11:08:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/"},"wordCount":222,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/","name":"What is the implementation principle of MyBatis interceptors? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T15:10:14+00:00","dateModified":"2024-03-21T11:08:25+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-implementation-principle-of-mybatis-interceptors\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the implementation principle of MyBatis interceptors?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17536","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=17536"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17536\/revisions"}],"predecessor-version":[{"id":51153,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17536\/revisions\/51153"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=17536"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=17536"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=17536"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}