{"id":1993,"date":"2021-02-20T17:03:36","date_gmt":"2021-02-20T09:03:36","guid":{"rendered":"https:\/\/www.yusian.com\/blog\/?p=1993"},"modified":"2021-02-20T17:03:36","modified_gmt":"2021-02-20T09:03:36","slug":"spring%e6%95%b4%e5%90%88mybatis%e5%af%b9%e4%ba%8b%e5%8a%a1%e7%9a%84%e6%94%af%e6%8c%81","status":"publish","type":"post","link":"https:\/\/www.yusian.com\/blog\/java\/2021\/02\/20\/1703361993.html","title":{"rendered":"Spring\u6574\u5408Mybatis\u5bf9\u4e8b\u52a1\u7684\u652f\u6301"},"content":{"rendered":"<p>\u53c2\u8003\u94fe\u63a5\uff1a<a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.yusian.com\/blog\/?p=1992\">Spring\u6574\u5408Mybatis\u7684\u7b80\u5355\u793a\u4f8b<\/a><\/p>\n<h1>1\u3001\u6ce8\u89e3\u7684\u65b9\u5f0f\u96c6\u6210<\/h1>\n<blockquote><p>\n  1.1\u3001\u65b0\u589eaop\u76f8\u5173\u7684\u4f9d\u8d56\u5305\n<\/p><\/blockquote>\n<pre data-language=XML><code class=\"language-markup line-numbers\">&lt;!--AOP--&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;org.springframework&lt;\/groupId&gt;\n    &lt;artifactId&gt;spring-aop&lt;\/artifactId&gt;\n    &lt;version&gt;5.3.3&lt;\/version&gt;\n&lt;\/dependency&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;org.aspectj&lt;\/groupId&gt;\n    &lt;artifactId&gt;aspectjweaver&lt;\/artifactId&gt;\n    &lt;version&gt;1.9.6&lt;\/version&gt;\n&lt;\/dependency&gt;\n<\/code><\/pre>\n<blockquote><p>\n  1.2\u3001Spring\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e8b\u52a1\u76f8\u5173\u914d\u7f6e\u9879\n<\/p><\/blockquote>\n<pre data-language=XML><code class=\"language-markup line-numbers\">&lt;bean id=\"dataSourceTransactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\"&gt;\n    &lt;property name=\"dataSource\" ref=\"dataSource\"\/&gt;\n&lt;\/bean&gt;\n\n&lt;tx:annotation-driven transaction-manager=\"dataSourceTransactionManager\"\/&gt;\n<\/code><\/pre>\n<blockquote><p>\n  1.3\u3001\u5728\u9700\u8981\u4e8b\u52a1\u652f\u6301\u7684\u7c7b\u540d\u65b9\u6cd5\u4e0a\u6dfb\u52a0Transactional\u6ce8\u89e3\n<\/p><\/blockquote>\n<pre><code class=\"language-java line-numbers\">package com.yusian.dao;\n\nimport com.yusian.entity.User;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\npublic interface UserDao {\n\n    \/**\n     * \u4fdd\u5b58\u7528\u6237\n     * @param user\n     *\/\n    @Transactional\n    void saveUser(User user);\n\n    \/**\n     * \u83b7\u53d6\u6240\u6709\u7528\u6237\n     * @return\n     *\/\n    List&lt;User&gt; getUsers();\n}\n\n<\/code><\/pre>\n<h1>2\u3001\u6807\u7b7e\u914d\u7f6e\u7684\u65b9\u5f0f<\/h1>\n<blockquote><p>\n  2.1\u3001Spring\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u76f8\u5173\u914d\u7f6e\u9879\n<\/p><\/blockquote>\n<pre data-language=XML><code class=\"language-markup line-numbers\">&lt;!--Transaction\u76f8\u5173\u914d\u7f6e--&gt;\n&lt;bean id=\"dataSourceTransactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\"&gt;\n    &lt;property name=\"dataSource\" ref=\"dataSource\"\/&gt;\n&lt;\/bean&gt;\n\n&lt;!--\u4e8b\u52a1\u5207\u9762--&gt;\n&lt;tx:advice id=\"txAdvice\" transaction-manager=\"dataSourceTransactionManager\"&gt;\n    &lt;tx:attributes&gt;\n        &lt;tx:method name=\"saveUser\" isolation=\"DEFAULT\" propagation=\"REQUIRED\"\/&gt;\n    &lt;\/tx:attributes&gt;\n&lt;\/tx:advice&gt;\n\n&lt;!--\u5207\u5165\u70b9--&gt;\n&lt;aop:config&gt;\n    &lt;aop:pointcut id=\"pc\" expression=\"execution(* com.yusian.dao.*.*(..))\"\/&gt;\n    &lt;aop:advisor advice-ref=\"txAdvice\" pointcut-ref=\"pc\"\/&gt;\n&lt;\/aop:config&gt;\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u53c2\u8003\u94fe\u63a5\uff1aSpring\u6574\u5408Mybatis\u7684\u7b80\u5355\u793a\u4f8b 1\u3001\u6ce8\u89e3\u7684\u65b9\u5f0f\u96c6\u6210 1.1\u3001\u65b0\u589eaop\u76f8\u5173\u7684\u4f9d\u8d56\u5305 &lt;!&#8211;AOP&#8211;&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;\/groupId&gt; &lt;artifactId&gt;spring-aop&lt;\/artifactId&gt; &lt;version&gt;5.3.3&lt;\/version&gt; &lt;\/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.aspectj&lt;\/groupId&gt; &lt;artifactId&gt;aspectjweaver&lt;\/artifactId&gt; &lt;version&gt;1.9.6&lt;\/version&gt; &lt;\/dependency&gt; 1.2\u3001Spring\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e8b\u52a1\u76f8\u5173\u914d\u7f6e\u9879 &lt;bean id=&#8221;dataSourceTransactionManager&#8221; class=&#8221;org.springframework.jdbc.datasource.DataSourceTransactionManager&#8221;&gt; &lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221;\/&gt; &lt;\/bean&gt; &lt;tx:annotation-driven transaction-manager=&#8221;dataSourceTransactionManager&#8221;\/&gt; 1.3\u3001\u5728\u9700\u8981\u4e8b\u52a1\u652f\u6301\u7684\u7c7b\u540d\u65b9\u6cd5\u4e0a\u6dfb\u52a0Transactional\u6ce8\u89e3 package com.yusian.dao; import com.yusian.entity.User; import org.springframework.transaction.annotation.Transactional; import java.util.List; public interface UserDao { \/** * \u4fdd\u5b58\u7528\u6237 * @param user *\/ @Transactional void saveUser(User user); \/** * \u83b7\u53d6\u6240\u6709\u7528\u6237 * @return *\/ List&lt;User&gt; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[344,347,284],"class_list":["post-1993","post","type-post","status-publish","format-standard","hentry","category-java","tag-mybatis","tag-spring","tag-284"],"_links":{"self":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/1993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/comments?post=1993"}],"version-history":[{"count":0,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/1993\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/media?parent=1993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/categories?post=1993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/tags?post=1993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}