diff --git a/springtx-master/.idea/.gitignore b/springtx-master/.idea/.gitignore
new file mode 100644
index 0000000..38b4785
--- /dev/null
+++ b/springtx-master/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../:\java project\springtx-master\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/springtx-master/.idea/.name b/springtx-master/.idea/.name
new file mode 100644
index 0000000..d47f4c9
--- /dev/null
+++ b/springtx-master/.idea/.name
@@ -0,0 +1 @@
+springtx
\ No newline at end of file
diff --git a/springtx-master/.idea/compiler.xml b/springtx-master/.idea/compiler.xml
new file mode 100644
index 0000000..62aac3a
--- /dev/null
+++ b/springtx-master/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/encodings.xml b/springtx-master/.idea/encodings.xml
new file mode 100644
index 0000000..7cb88a1
--- /dev/null
+++ b/springtx-master/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/jarRepositories.xml b/springtx-master/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/springtx-master/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml
new file mode 100644
index 0000000..44c1ba0
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml
new file mode 100644
index 0000000..ca0f837
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/springtx-master/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
new file mode 100644
index 0000000..0f099c7
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml
new file mode 100644
index 0000000..4507778
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml
new file mode 100644
index 0000000..29129b0
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml
new file mode 100644
index 0000000..e476b1b
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml
new file mode 100644
index 0000000..207d739
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml
new file mode 100644
index 0000000..494d78e
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml
new file mode 100644
index 0000000..0143158
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml b/springtx-master/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml
new file mode 100644
index 0000000..bf81736
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/springtx-master/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
new file mode 100644
index 0000000..7caed99
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml b/springtx-master/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
new file mode 100644
index 0000000..6b94c18
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml b/springtx-master/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml
new file mode 100644
index 0000000..1588020
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml b/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml
new file mode 100644
index 0000000..0773677
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_12_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml b/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml
new file mode 100644
index 0000000..7c8d673
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_12_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml b/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml
new file mode 100644
index 0000000..2a1fc37
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_33.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml b/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml
new file mode 100644
index 0000000..d0caadb
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_33.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml b/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml
new file mode 100644
index 0000000..97528f4
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_33.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml b/springtx-master/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml
new file mode 100644
index 0000000..5f6fb35
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml b/springtx-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml
new file mode 100644
index 0000000..1307b15
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml b/springtx-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
new file mode 100644
index 0000000..ada1907
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml b/springtx-master/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml
new file mode 100644
index 0000000..ac5e529
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml b/springtx-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml
new file mode 100644
index 0000000..0861f6d
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml b/springtx-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml
new file mode 100644
index 0000000..a442768
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..ee2bf20
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..7869059
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..3ca3167
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..c785db0
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..da39468
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..3059fe4
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..f7b775c
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..a2388c7
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml
new file mode 100644
index 0000000..1bacb5c
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_2_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..aa9a77b
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_aop_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..d8352b1
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_beans_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_context_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_context_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..4e5e2f1
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_context_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_core_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_core_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..b23730c
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_core_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..14aaba1
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_expression_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..3fa0a6b
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..acca2ee
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_tx_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_tx_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..536b800
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_tx_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_web_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_web_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..efc68d1
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_web_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml b/springtx-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml
new file mode 100644
index 0000000..17426d0
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml b/springtx-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml
new file mode 100644
index 0000000..7591084
--- /dev/null
+++ b/springtx-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/misc.xml b/springtx-master/.idea/misc.xml
new file mode 100644
index 0000000..25087ef
--- /dev/null
+++ b/springtx-master/.idea/misc.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/modules.xml b/springtx-master/.idea/modules.xml
new file mode 100644
index 0000000..29e872e
--- /dev/null
+++ b/springtx-master/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/.idea/springtx-master.iml b/springtx-master/.idea/springtx-master.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/springtx-master/.idea/springtx-master.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.gitignore b/springtx-master/springtx-master/.gitignore
new file mode 100644
index 0000000..a1c2a23
--- /dev/null
+++ b/springtx-master/springtx-master/.gitignore
@@ -0,0 +1,23 @@
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
diff --git a/springtx-master/springtx-master/.idea/compiler.xml b/springtx-master/springtx-master/.idea/compiler.xml
new file mode 100644
index 0000000..f013a2f
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/dataSources.xml b/springtx-master/springtx-master/.idea/dataSources.xml
new file mode 100644
index 0000000..76ccbcf
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/dataSources.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ mysql
+ true
+ com.mysql.jdbc.Driver
+ jdbc:mysql://localhost:3306/springtx
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/dataSources/b0052e3a-45ad-430b-9938-91c4cc13b9eb.xml b/springtx-master/springtx-master/.idea/dataSources/b0052e3a-45ad-430b-9938-91c4cc13b9eb.xml
new file mode 100644
index 0000000..06c4d7f
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/dataSources/b0052e3a-45ad-430b-9938-91c4cc13b9eb.xml
@@ -0,0 +1,563 @@
+
+
+
+
+ lower/lower
+
+
+ utf8_general_ci
+
+
+ utf8_general_ci
+
+
+ utf8_general_ci
+
+
+ utf8_general_ci
+
+
+ utf8_general_ci
+
+
+ 1
+ 1
+ utf8_general_ci
+
+
+ utf8_general_ci
+
+
+ utf8_general_ci
+
+
+ armscii8
+ 0
+
+
+ armscii8
+ 1
+
+
+ ascii
+ 0
+
+
+ ascii
+ 1
+
+
+ big5
+ 0
+
+
+ big5
+ 1
+
+
+ binary
+ 1
+
+
+ cp1250
+ 0
+
+
+ cp1250
+ 0
+
+
+ cp1250
+ 0
+
+
+ cp1250
+ 1
+
+
+ cp1250
+ 0
+
+
+ cp1251
+ 0
+
+
+ cp1251
+ 0
+
+
+ cp1251
+ 1
+
+
+ cp1251
+ 0
+
+
+ cp1251
+ 0
+
+
+ cp1256
+ 0
+
+
+ cp1256
+ 1
+
+
+ cp1257
+ 0
+
+
+ cp1257
+ 1
+
+
+ cp1257
+ 0
+
+
+ cp850
+ 0
+
+
+ cp850
+ 1
+
+
+ cp852
+ 0
+
+
+ cp852
+ 1
+
+
+ cp866
+ 0
+
+
+ cp866
+ 1
+
+
+ cp932
+ 0
+
+
+ cp932
+ 1
+
+
+ dec8
+ 0
+
+
+ dec8
+ 1
+
+
+ eucjpms
+ 0
+
+
+ eucjpms
+ 1
+
+
+ euckr
+ 0
+
+
+ euckr
+ 1
+
+
+ gb2312
+ 0
+
+
+ gb2312
+ 1
+
+
+ gbk
+ 0
+
+
+ gbk
+ 1
+
+
+ geostd8
+ 0
+
+
+ geostd8
+ 1
+
+
+ greek
+ 0
+
+
+ greek
+ 1
+
+
+ hebrew
+ 0
+
+
+ hebrew
+ 1
+
+
+ hp8
+ 0
+
+
+ hp8
+ 1
+
+
+ keybcs2
+ 0
+
+
+ keybcs2
+ 1
+
+
+ koi8r
+ 0
+
+
+ koi8r
+ 1
+
+
+ koi8u
+ 0
+
+
+ koi8u
+ 1
+
+
+ latin1
+ 0
+
+
+ latin1
+ 0
+
+
+ latin1
+ 0
+
+
+ latin1
+ 0
+
+
+ latin1
+ 0
+
+
+ latin1
+ 0
+
+
+ latin1
+ 0
+
+
+ latin1
+ 1
+
+
+ latin2
+ 0
+
+
+ latin2
+ 0
+
+
+ latin2
+ 0
+
+
+ latin2
+ 1
+
+
+ latin2
+ 0
+
+
+ latin5
+ 0
+
+
+ latin5
+ 1
+
+
+ latin7
+ 0
+
+
+ latin7
+ 0
+
+
+ latin7
+ 1
+
+
+ latin7
+ 0
+
+
+ macce
+ 0
+
+
+ macce
+ 1
+
+
+ macroman
+ 0
+
+
+ macroman
+ 1
+
+
+ sjis
+ 0
+
+
+ sjis
+ 1
+
+
+ swe7
+ 0
+
+
+ swe7
+ 1
+
+
+ tis620
+ 0
+
+
+ tis620
+ 1
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 1
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ucs2
+ 0
+
+
+ ujis
+ 0
+
+
+ ujis
+ 1
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 1
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+ utf8
+ 0
+
+
+
+ 1
+ 主键ID
+ bigint(20)|0
+ 1
+ normal
+
+
+ 2
+ 姓名
+ varchar(30)|0
+ normal
+
+
+ 1
+ id
+ 1
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/encodings.xml b/springtx-master/springtx-master/.idea/encodings.xml
new file mode 100644
index 0000000..f20d44b
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/inspectionProfiles/Project_Default.xml b/springtx-master/springtx-master/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..c88b645
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/springtx-master/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml
new file mode 100644
index 0000000..6fec8f4
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/springtx-master/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml
new file mode 100644
index 0000000..9eb8596
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml
new file mode 100644
index 0000000..33c30b4
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml
new file mode 100644
index 0000000..06441f4
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_6.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_6.xml
new file mode 100644
index 0000000..eebe10d
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_6.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_6.xml
new file mode 100644
index 0000000..51087da
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_6.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_6.xml
new file mode 100644
index 0000000..fa50d95
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_6.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_6.xml
new file mode 100644
index 0000000..7e20e35
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_6.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_6.xml
new file mode 100644
index 0000000..345adf8
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml b/springtx-master/springtx-master/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml
new file mode 100644
index 0000000..6d6865c
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml b/springtx-master/springtx-master/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml
new file mode 100644
index 0000000..e74f3ab
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml b/springtx-master/springtx-master/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml
new file mode 100644
index 0000000..6978c0b
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_46.xml b/springtx-master/springtx-master/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_46.xml
new file mode 100644
index 0000000..774fddb
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_46.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml
new file mode 100644
index 0000000..cbe5ca7
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml
new file mode 100644
index 0000000..1407c58
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_32.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_32.xml
new file mode 100644
index 0000000..c095b04
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_32.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_32.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_32.xml
new file mode 100644
index 0000000..8fd901b
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_32.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_32.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_32.xml
new file mode 100644
index 0000000..7f8e5aa
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_32.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_11_Final.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_11_Final.xml
new file mode 100644
index 0000000..bdc3a07
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_11_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml
new file mode 100644
index 0000000..5f7dd01
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_projectlombok_lombok_1_16_22.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_projectlombok_lombok_1_16_22.xml
new file mode 100644
index 0000000..763e50d
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_projectlombok_lombok_1_16_22.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml
new file mode 100644
index 0000000..6073e53
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml
new file mode 100644
index 0000000..20e8163
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..560147f
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..0a679e0
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..3523ed5
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..1ba5288
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..9b86ab1
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..d8202e5
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..dd5b9e5
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_4_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_4_RELEASE.xml
new file mode 100644
index 0000000..699293c
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_aop_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_aop_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..83b3250
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_aop_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_beans_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_beans_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..0ff96a0
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_beans_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_context_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_context_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..6f555a3
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_context_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_core_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_core_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..8a40bf6
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_core_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_expression_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_expression_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..a9685d4
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_expression_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..8701c01
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..a3b31ab
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_tx_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_tx_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..5b12f2f
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_tx_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_web_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_web_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..cccc4ca
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_web_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_8_RELEASE.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_8_RELEASE.xml
new file mode 100644
index 0000000..7829006
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_8_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml b/springtx-master/springtx-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml
new file mode 100644
index 0000000..33ccf19
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/misc.xml b/springtx-master/springtx-master/.idea/misc.xml
new file mode 100644
index 0000000..3855629
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/misc.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/modules.xml b/springtx-master/springtx-master/.idea/modules.xml
new file mode 100644
index 0000000..8c3673e
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/smartfox_info.xml b/springtx-master/springtx-master/.idea/smartfox_info.xml
new file mode 100644
index 0000000..1c2584f
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/smartfox_info.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/.idea/vcs.xml b/springtx-master/springtx-master/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/springtx-master/springtx-master/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/README.md b/springtx-master/springtx-master/README.md
new file mode 100644
index 0000000..5178cc0
--- /dev/null
+++ b/springtx-master/springtx-master/README.md
@@ -0,0 +1,207 @@
+---
+title: 2018-12-29 5分钟探究Spring事务失效原因
+tags: java
+grammar_cjkRuby: true
+---
+
+## 前言
+Spring的事务管理,大家在项目中几乎都会使用上,但是我们是否正确使用了吗?原理是否真的知道呢?本文将会结合业务场景快速讲解Spring事务失效的原理
+
+
+## 1 业务场景
+如果有这样的业务,A类中的save方法需要调用本类的save2方法,不管save2中的方法执行成功与否,都不能影响save方法的执行,因此,我们会想到把save2的事务传播行为设置成 REQUIRES_NEW,代码如下:
+
+``` javas
+@Service
+@Slf4j
+public class UserService {
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ @Autowired
+ private UserService2 userService2;
+
+ @Transactional
+ public void save() {
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES\n" +
+ "(5, 'Jack5')");
+ try {
+ save2();
+ } catch (Exception e) {
+ System.err.println("出错啦");
+ }
+
+ }
+
+ @Transactional(propagation = Propagation.REQUIRES_NEW)
+ public void save2() {
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES\n" +
+ "(6, 'Jack6')");
+ int i = 1 / 0;
+ }
+}
+
+```
+由于,save2方法不能影响save方法的执行,所以必须补抓 save2方法。
+预期结果应该是
+save方法正常插入数据,save2方法插入数据失败
+
+执行结果:
+
+
+是的,你并没有看错,save2方法竟然插入成功!如果知道原因,可以不用继续看下文了~
+
+## 2 探究
+### 2.1 Spring的传播行为
+再贴一下Spring的传播行为
+public enum Propagation {
+ REQUIRED(0),
+ SUPPORTS(1),
+ MANDATORY(2),
+ REQUIRES_NEW(3),
+ NOT_SUPPORTED(4),
+ NEVER(5),
+ NESTED(6);
+}
+REQUIRED :如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
+SUPPORTS :如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
+MANDATORY :如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
+REQUIRES_NEW :创建一个新的事务,如果当前存在事务,则把当前事务挂起。
+NOT_SUPPORTED :以非事务方式运行,如果当前存在事务,则把当前事务挂起。
+NEVER :以非事务方式运行,如果当前存在事务,则抛出异常。
+NESTED :如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于 REQUIRED 。
+
+可以肯定的是 ,该业务确实是使用 REQUIRES_NEW 。但是为什么失效呢?
+
+
+### 2.2 动态代理
+在继续探究前,先简单带过一下动态代理。
+代理模式主要功能是为了增强一个类中的方法诞生的一种设计模式。
+而代理模式分为动态代理和静态代理,动态代理的代理类是在运行时生成的,而静态代理是在编译时生成的。动态代理可以分为基于接口的JDK动态代理和基于类的Cglib动态代理。
+
+下面讲解一下基于JDK的动态代理:
+在java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过这个类和这个接口可以生成JDK动态代理类和动态代理对象。
+
+``` javas
+public interface Person {
+ void work();
+}
+
+public class Student implements Person {
+ @Override
+ public void work() {
+ System.out.println("读书");
+ }
+}
+
+public class MyInvocationHandler implements InvocationHandler {
+ //增强的目标类
+ private Person person;
+
+ public MyInvocationHandler(Person person) {
+ this.person = person;
+ }
+
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ System.out.println("先吃饭-----再看书");
+ method.invoke(person, args);
+ return null;
+ }
+}
+
+public class Main {
+ public static void main(String[] args) {
+ Person person = new Student();
+ MyInvocationHandler myInvocationHandler = new MyInvocationHandler(person);
+ System.out.println(Arrays.toString(Student.class.getInterfaces()));
+ Person proPerson = (Person) Proxy.newProxyInstance(Student.class.getClassLoader(), Student.class.getInterfaces(), myInvocationHandler);
+ proPerson.work();
+ }
+}
+```
+
+结果为:
+先吃饭-----再看书
+读书
+
+详细代码可以在github下载, https://github.com/229319258/springtx
+
+
+
+### 2.3 动态代理的坑
+至此,我们可以知道,Spring事务是基于动态代理实现的。那么,Spring事务失效的真正原因和动态代理有什么关联呢?
+
+模拟Spring事务失效的问题,把上文的代码稍微修改一下,
+
+``` javas
+public class Student implements Person {
+ @Override
+ public void work() {
+ System.out.println("读书");
+ try {
+ this.work2();
+ } catch (Exception e) {
+
+ }
+ }
+ public void work2() {
+ System.out.println("不想读啊");
+ int i = 1 / 0;
+ }
+}
+
+```
+大家,可以把重心放在try的代码块上,我们可以发现,实际上调用work2方法的是Student实例,并不是所谓的work2的增强类。
+**同理,上文中Spring事务失效的save2方法,调用的实例并不是代理类,而是未增强的普通对象UserService。**
+
+因此,没有使用Proxy生成的方法,Spring事务当然会失效~
+
+那么,问题又来了。如果我确实想要让save2的事务生效,应该怎么处理呢?
+有两种方法
+- 把save2重新放在另一个类上
+- 使用方法 AopContext.currentProxy() 获取当前代理对象
+
+``` javas
+ @Transactional
+ public void save() {
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES\n" +
+ "(5, 'Jack5')");
+ try {
+ UserService proxy = (UserService) AopContext.currentProxy();
+ proxy.save2();
+ } catch (Exception e) {
+ System.err.println("出错啦");
+ }
+
+ }
+```
+
+## 3 结论
+1.我们在使用Spring事务的时候,不能直接在一个定义 @Transactional调用同一个类的 @Transactional(propagation = Propagation.REQUIRES_NEW)
+
+**2.除了这种情况失效外,我们也不能直接在一个未设置 @Transactional的方法,调用同一个类中调用@Transactional的方法,因为,实际上调用的并不是 proxy类的方法,而是本身的方法。**
+如:
+
+``` javas
+
+ // @Transactional
+ public void save() {
+ save2();
+ }
+
+ @Transactional()
+ public void save2() {
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES\n" +
+ "(7, 'Jack7')");
+ int i = 1 / 0;
+ }
+```
+查看数据库的数据,同样save2的数据并不会回滚,因为并不是调用代理类,而是调用普通的this(UserService)的方法。因此,事务同样失效。
+
+#### 代码地址
+[代码地址](https://github.com/229319258/springtx)
+
+#### 参考文献
+[java动态代理实现与原理详细分析](https://www.cnblogs.com/gonjan-blog/p/6685611.html)
+[Spring 事务失效那点事](https://blog.csdn.net/rylan11/article/details/76609643)
\ No newline at end of file
diff --git a/springtx-master/springtx-master/pom.xml b/springtx-master/springtx-master/pom.xml
new file mode 100644
index 0000000..c73a553
--- /dev/null
+++ b/springtx-master/springtx-master/pom.xml
@@ -0,0 +1,53 @@
+
+
+ 4.0.0
+
+ com.github.ffq
+ springtx
+ 1.0
+
+ spring-boot-starter-parent
+ org.springframework.boot
+ 2.2.6.RELEASE
+
+
+ 1.8
+ 1.8
+ 1.8
+ UTF-8
+ UTF-8
+
+
+
+
+ org.aspectj
+ aspectjweaver
+ 1.9.7
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.projectlombok
+ lombok
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/springtx.iml b/springtx-master/springtx-master/springtx.iml
new file mode 100644
index 0000000..1761b6c
--- /dev/null
+++ b/springtx-master/springtx-master/springtx.iml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/Application.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/Application.java
new file mode 100644
index 0000000..79e80a1
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/Application.java
@@ -0,0 +1,20 @@
+package com.github.ffq;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+/**
+ * @author luwei
+ **/
+@SpringBootApplication
+@EnableAspectJAutoProxy(exposeProxy = true)
+public class Application {
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+
+}
\ No newline at end of file
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/controller/UserController.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/controller/UserController.java
new file mode 100644
index 0000000..f0e091a
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/controller/UserController.java
@@ -0,0 +1,27 @@
+package com.github.ffq.controller;
+
+import com.github.ffq.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: ffq
+ * @Description:
+ * @Date: Create in 9:41 2019/1/5
+ */
+@RestController
+@RequestMapping("/api/user")
+public class UserController {
+ @Autowired
+ private UserService userService;
+
+ @GetMapping
+ public void save() {
+ //保存数据
+ userService.save();
+ }
+}
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Main.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Main.java
new file mode 100644
index 0000000..ce0fbb8
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Main.java
@@ -0,0 +1,19 @@
+package com.github.ffq.proxy;
+
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+
+/**
+ * @Author: ffq
+ * @Description:
+ * @Date: Create in 11:15 2019/1/5
+ */
+public class Main {
+ public static void main(String[] args) {
+ Person person = new Student();
+ MyInvocationHandler myInvocationHandler = new MyInvocationHandler(person);
+ System.out.println(Arrays.toString(Student.class.getInterfaces()));
+ Person proPerson = (Person) Proxy.newProxyInstance(Student.class.getClassLoader(), Student.class.getInterfaces(), myInvocationHandler);
+ proPerson.work();
+ }
+}
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/MyInvocationHandler.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/MyInvocationHandler.java
new file mode 100644
index 0000000..7c9e2a4
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/MyInvocationHandler.java
@@ -0,0 +1,25 @@
+package com.github.ffq.proxy;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+
+/**
+ * @Author: ffq
+ * @Description:
+ * @Date: Create in 11:11 2019/1/5
+ */
+public class MyInvocationHandler implements InvocationHandler {
+ //增强的目标类
+ private Person person;
+
+ public MyInvocationHandler(Person person) {
+ this.person = person;
+ }
+
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ System.out.println("先吃饭-----再看书");
+ method.invoke(person, args);
+ return null;
+ }
+}
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Person.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Person.java
new file mode 100644
index 0000000..015800d
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Person.java
@@ -0,0 +1,10 @@
+package com.github.ffq.proxy;
+
+/**
+ * @Author: ffq
+ * @Description:
+ * @Date: Create in 11:08 2019/1/5
+ */
+public interface Person {
+ void work();
+}
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Student.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Student.java
new file mode 100644
index 0000000..d15136a
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/proxy/Student.java
@@ -0,0 +1,25 @@
+package com.github.ffq.proxy;
+
+/**
+ * @Author: ffq
+ * @Description:
+ * @Date: Create in 11:09 2019/1/5
+ */
+public class Student implements Person {
+ @Override
+ public void work() {
+ System.out.println("读书");
+ try {
+ this.work2();
+ } catch (Exception e) {
+
+ }
+ }
+
+
+ public void work2() {
+ System.out.println("不想读啊");
+ int i = 1 / 0;
+ }
+
+}
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/service/UserService.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/service/UserService.java
new file mode 100644
index 0000000..d81a6f6
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/service/UserService.java
@@ -0,0 +1,65 @@
+package com.github.ffq.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.aop.framework.AopContext;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Author: ffq
+ * @Description:
+ * @Date: Create in 9:42 2019/1/5
+ */
+//@Service
+@Slf4j
+public class UserService {
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+ /**
+ * spring事务失效的场景
+ * 1. 方法内的自调用
+ * 2. 方法是private的
+ * 3. 方法是final的
+ * 4. 单独的线程调用方法
+ * 5. 异常被吃掉
+ * 6. 类没有被spring管理
+ */
+ @Autowired
+ private UserService userService;
+// public void save() {
+//// userService.save2();
+// UserService userService = (UserService) AopContext.currentProxy();
+// userService.save2();
+// }
+
+// @Transactional
+// public final void save2() {
+// jdbcTemplate.execute("INSERT INTO user (id, name) VALUES (6, 'Jack6')");
+// int i = 1/0;
+// }
+
+ @Transactional
+ public void save2() {
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES (2, 'Jack6')");
+ new Thread(()->{
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES (6, 'Jack6')");
+ int i = 1/0;
+ }).start();
+ }
+
+
+ @Transactional
+ public void save() {
+ try {
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES (6, 'Jack6')");
+ int i = 1/0;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/springtx-master/springtx-master/src/main/java/com/github/ffq/service/UserService2.java b/springtx-master/springtx-master/src/main/java/com/github/ffq/service/UserService2.java
new file mode 100644
index 0000000..38a5d1a
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/java/com/github/ffq/service/UserService2.java
@@ -0,0 +1,27 @@
+package com.github.ffq.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Author: ffq
+ * @Description:
+ * @Date: Create in 9:42 2019/1/5
+ */
+@Service
+@Slf4j
+public class UserService2 {
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ @Transactional(propagation = Propagation.REQUIRES_NEW)
+ public void save2() {
+ jdbcTemplate.execute("INSERT INTO user (id, name) VALUES\n" +
+ "(6, 'Jack6')");
+ int i = 1 / 0;
+ }
+}
diff --git a/springtx-master/springtx-master/src/main/resources/application.yaml b/springtx-master/springtx-master/src/main/resources/application.yaml
new file mode 100644
index 0000000..ec65330
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/resources/application.yaml
@@ -0,0 +1,9 @@
+server:
+ port: 8080
+
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8
+ driver-class-name: com.mysql.jdbc.Driver
+ username: root
+ password: 123456
\ No newline at end of file
diff --git a/springtx-master/springtx-master/src/main/resources/db/data-h2.sql b/springtx-master/springtx-master/src/main/resources/db/data-h2.sql
new file mode 100644
index 0000000..d9c789a
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/resources/db/data-h2.sql
@@ -0,0 +1,6 @@
+DELETE FROM user;
+
+INSERT INTO user (id, name) VALUES
+(2, 'Jack'),
+(3, 'Tom'),
+(1, 'Billie');
\ No newline at end of file
diff --git a/springtx-master/springtx-master/src/main/resources/db/schema-h2.sql b/springtx-master/springtx-master/src/main/resources/db/schema-h2.sql
new file mode 100644
index 0000000..265a3d6
--- /dev/null
+++ b/springtx-master/springtx-master/src/main/resources/db/schema-h2.sql
@@ -0,0 +1,8 @@
+DROP TABLE IF EXISTS user;
+
+CREATE TABLE user
+(
+ id BIGINT(20) NOT NULL COMMENT '主键ID',
+ name VARCHAR(30) DEFAULT NULL COMMENT '姓名',
+ PRIMARY KEY (id)
+);
\ No newline at end of file
diff --git a/springtx-master/springtx-master/target/classes/application.yaml b/springtx-master/springtx-master/target/classes/application.yaml
new file mode 100644
index 0000000..ec65330
--- /dev/null
+++ b/springtx-master/springtx-master/target/classes/application.yaml
@@ -0,0 +1,9 @@
+server:
+ port: 8080
+
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8
+ driver-class-name: com.mysql.jdbc.Driver
+ username: root
+ password: 123456
\ No newline at end of file
diff --git a/springtx-master/springtx-master/target/classes/db/data-h2.sql b/springtx-master/springtx-master/target/classes/db/data-h2.sql
new file mode 100644
index 0000000..d9c789a
--- /dev/null
+++ b/springtx-master/springtx-master/target/classes/db/data-h2.sql
@@ -0,0 +1,6 @@
+DELETE FROM user;
+
+INSERT INTO user (id, name) VALUES
+(2, 'Jack'),
+(3, 'Tom'),
+(1, 'Billie');
\ No newline at end of file
diff --git a/springtx-master/springtx-master/target/classes/db/schema-h2.sql b/springtx-master/springtx-master/target/classes/db/schema-h2.sql
new file mode 100644
index 0000000..265a3d6
--- /dev/null
+++ b/springtx-master/springtx-master/target/classes/db/schema-h2.sql
@@ -0,0 +1,8 @@
+DROP TABLE IF EXISTS user;
+
+CREATE TABLE user
+(
+ id BIGINT(20) NOT NULL COMMENT '主键ID',
+ name VARCHAR(30) DEFAULT NULL COMMENT '姓名',
+ PRIMARY KEY (id)
+);
\ No newline at end of file