Mth Zhang 9 months ago
parent 02ecc7cc8d
commit 8a529413da

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" withSubpackages="false" static="false" />
<package name="kotlinx.android.synthetic" withSubpackages="true" static="false" />
<package name="io.ktor" withSubpackages="true" static="false" />
</value>
</option>
</JetCodeStyleSettings>
</code_scheme>
</component>
</project>

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="spring_ioc_02" />
<module name="spring_ioc_01" />
<module name="spring_tx_01" />
<module name="spring_jdbctemplate_01" />
<module name="spring_aop_01" />
<module name="spring_test_01" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel target="8">
<module name="spring_aop_01" target="1.8" />
<module name="spring_ioc_01" target="1.8" />
<module name="spring_ioc_02" target="1.8" />
<module name="spring_jdbctemplate_01" target="1.8" />
<module name="spring_test_01" target="1.8" />
<module name="spring_tx_01" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

@ -0,0 +1,30 @@
<component name="libraryTable">
<library name="Maven: Arquillian JUnit:Release" type="repository">
<properties maven-id="org.jboss.arquillian.junit:arquillian-junit-container:RELEASE" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/junit/arquillian-junit-container/1.8.0.Final/arquillian-junit-container-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/junit/arquillian-junit-core/1.8.0.Final/arquillian-junit-core-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/test/arquillian-test-api/1.8.0.Final/arquillian-test-api-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/core/arquillian-core-api/1.8.0.Final/arquillian-core-api-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/test/arquillian-test-spi/1.8.0.Final/arquillian-test-spi-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/core/arquillian-core-spi/1.8.0.Final/arquillian-core-spi-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/container/arquillian-container-test-api/1.8.0.Final/arquillian-container-test-api-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/shrinkwrap/shrinkwrap-api/1.2.6/shrinkwrap-api-1.2.6.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-base/2.0.0/shrinkwrap-descriptors-api-base-2.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/container/arquillian-container-test-spi/1.8.0.Final/arquillian-container-test-spi-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/container/arquillian-container-spi/1.8.0.Final/arquillian-container-spi-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/core/arquillian-core-impl-base/1.8.0.Final/arquillian-core-impl-base-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/test/arquillian-test-impl-base/1.8.0.Final/arquillian-test-impl-base-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/container/arquillian-container-impl-base/1.8.0.Final/arquillian-container-impl-base-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/config/arquillian-config-api/1.8.0.Final/arquillian-config-api-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/config/arquillian-config-impl-base/1.8.0.Final/arquillian-config-impl-base-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/config/arquillian-config-spi/1.8.0.Final/arquillian-config-spi-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-spi/2.0.0/shrinkwrap-descriptors-spi-2.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/arquillian/container/arquillian-container-test-impl-base/1.8.0.Final/arquillian-container-test-impl-base-1.8.0.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/shrinkwrap/shrinkwrap-impl-base/1.2.6/shrinkwrap-impl-base-1.2.6.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/shrinkwrap/shrinkwrap-spi/1.2.6/shrinkwrap-spi-1.2.6.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: aopalliance:aopalliance:1.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/aopalliance/aopalliance/1.0/aopalliance-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.alibaba:druid:1.1.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.1.0/druid-1.1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.1.0/druid-1.1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.1.0/druid-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.alibaba:druid:1.1.10">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.1.10/druid-1.1.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.1.10/druid-1.1.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.1.10/druid-1.1.10-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.alibaba:druid:1.2.12">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.2.12/druid-1.2.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.2.12/druid-1.2.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/com/alibaba/druid/1.2.12/druid-1.2.12-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.google.protobuf:protobuf-java:2.6.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/com/google/protobuf/protobuf-java/2.6.0/protobuf-java-2.6.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/com/google/protobuf/protobuf-java/2.6.0/protobuf-java-2.6.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/com/google/protobuf/protobuf-java/2.6.0/protobuf-java-2.6.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.google.protobuf:protobuf-java:3.11.4">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/com/google/protobuf/protobuf-java/3.11.4/protobuf-java-3.11.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/com/google/protobuf/protobuf-java/3.11.4/protobuf-java-3.11.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/com/google/protobuf/protobuf-java/3.11.4/protobuf-java-3.11.4-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-logging:commons-logging:1.2">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/commons-logging/commons-logging/1.2/commons-logging-1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: junit:junit:4.13.1">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/junit/junit/4.13.1/junit-4.13.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/junit/junit/4.13.1/junit-4.13.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/junit/junit/4.13.1/junit-4.13.1-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: mysql:mysql-connector-java:8.0.11">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: mysql:mysql-connector-java:8.0.22">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/mysql/mysql-connector-java/8.0.22/mysql-connector-java-8.0.22.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/mysql/mysql-connector-java/8.0.22/mysql-connector-java-8.0.22-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/mysql/mysql-connector-java/8.0.22/mysql-connector-java-8.0.22-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.logging.log4j:log4j-api:2.14.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-api/2.14.0/log4j-api-2.14.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-api/2.14.0/log4j-api-2.14.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-api/2.14.0/log4j-api-2.14.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.logging.log4j:log4j-core:2.14.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-core/2.14.0/log4j-core-2.14.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-core/2.14.0/log4j-core-2.14.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-core/2.14.0/log4j-core-2.14.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.14.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-slf4j-impl/2.14.0/log4j-slf4j-impl-2.14.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-slf4j-impl/2.14.0/log4j-slf4j-impl-2.14.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apache/logging/log4j/log4j-slf4j-impl/2.14.0/log4j-slf4j-impl-2.14.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apiguardian:apiguardian-api:1.1.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.aspectj:aspectjweaver:1.9.6">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.junit.platform:junit-platform-commons:1.7.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/junit/platform/junit-platform-commons/1.7.0/junit-platform-commons-1.7.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/junit/platform/junit-platform-commons/1.7.0/junit-platform-commons-1.7.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/junit/platform/junit-platform-commons/1.7.0/junit-platform-commons-1.7.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.opentest4j:opentest4j:1.2.0">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.projectlombok:lombok:1.18.12">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/projectlombok/lombok/1.18.12/lombok-1.18.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/projectlombok/lombok/1.18.12/lombok-1.18.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/projectlombok/lombok/1.18.12/lombok-1.18.12-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.projectlombok:lombok:1.18.16">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/projectlombok/lombok/1.18.16/lombok-1.18.16.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/projectlombok/lombok/1.18.16/lombok-1.18.16-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/projectlombok/lombok/1.18.16/lombok-1.18.16-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-api:1.7.25">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-aop:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-aop/5.3.5/spring-aop-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-aop/5.3.5/spring-aop-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-aop/5.3.5/spring-aop-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-aspects:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-aspects/5.3.5/spring-aspects-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-aspects/5.3.5/spring-aspects-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-aspects/5.3.5/spring-aspects-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-beans:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-beans/5.3.5/spring-beans-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-beans/5.3.5/spring-beans-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-beans/5.3.5/spring-beans-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-context:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-context/5.3.5/spring-context-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-context/5.3.5/spring-context-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-context/5.3.5/spring-context-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-core:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-core/5.3.5/spring-core-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-core/5.3.5/spring-core-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-core/5.3.5/spring-core-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-expression:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-expression/5.3.5/spring-expression-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-expression/5.3.5/spring-expression-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-expression/5.3.5/spring-expression-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-jcl:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-jcl/5.3.5/spring-jcl-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-jcl/5.3.5/spring-jcl-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-jcl/5.3.5/spring-jcl-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-jdbc:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-jdbc/5.3.5/spring-jdbc-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-jdbc/5.3.5/spring-jdbc-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-jdbc/5.3.5/spring-jdbc-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-orm:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-orm/5.3.5/spring-orm-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-orm/5.3.5/spring-orm-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-orm/5.3.5/spring-orm-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-test:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-test/5.3.5/spring-test-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-test/5.3.5/spring-test-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-test/5.3.5/spring-test-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-tx:5.3.5">
<CLASSES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-tx/5.3.5/spring-tx-5.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-tx/5.3.5/spring-tx-5.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/java-application/Tools/maven_repository/org/springframework/spring-tx/5.3.5/spring-tx-5.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/spring_test_01/pom.xml" />
<option value="$PROJECT_DIR$/spring_ioc_01/pom.xml" />
<option value="$PROJECT_DIR$/spring_ioc_02/pom.xml" />
<option value="$PROJECT_DIR$/spring_aop_01/pom.xml" />
<option value="$PROJECT_DIR$/spring_jdbctemplate_01/pom.xml" />
<option value="$PROJECT_DIR$/spring_tx_01/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/spring_all.iml" filepath="$PROJECT_DIR$/.idea/spring_all.iml" />
<module fileurl="file://$PROJECT_DIR$/spring_aop_01/spring_aop_01.iml" filepath="$PROJECT_DIR$/spring_aop_01/spring_aop_01.iml" />
<module fileurl="file://$PROJECT_DIR$/spring_ioc_01/spring_ioc_01.iml" filepath="$PROJECT_DIR$/spring_ioc_01/spring_ioc_01.iml" />
<module fileurl="file://$PROJECT_DIR$/spring_ioc_02/spring_ioc_02.iml" filepath="$PROJECT_DIR$/spring_ioc_02/spring_ioc_02.iml" />
<module fileurl="file://$PROJECT_DIR$/spring_jdbctemplate_01/spring_jdbctemplate_01.iml" filepath="$PROJECT_DIR$/spring_jdbctemplate_01/spring_jdbctemplate_01.iml" />
<module fileurl="file://$PROJECT_DIR$/spring_test_01/spring_test_01.iml" filepath="$PROJECT_DIR$/spring_test_01/spring_test_01.iml" />
<module fileurl="file://$PROJECT_DIR$/spring_tx_01/spring_tx_01.iml" filepath="$PROJECT_DIR$/spring_tx_01/spring_tx_01.iml" />
</modules>
</component>
</project>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

@ -0,0 +1,325 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="f0bedaf3-8875-46fb-a3dc-46b7e7b1dbd0" name="Default Changelist" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CodeStyleSettingsInfer">
<option name="done" value="true" />
</component>
<component name="DatabaseView">
<option name="SHOW_INTERMEDIATE" value="true" />
<option name="GROUP_DATA_SOURCES" value="true" />
<option name="GROUP_SCHEMA" value="true" />
<option name="GROUP_CONTENTS" value="false" />
<option name="SORT_POSITIONED" value="false" />
<option name="SHOW_EMPTY_GROUPS" value="false" />
<option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
<option name="HIDDEN_KINDS">
<set />
</option>
<expand />
<select />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Arquillian JUnit Test Class" />
<option value="Interface" />
<option value="spring-beans.schema" />
<option value="Class" />
</list>
</option>
</component>
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
<option name="localRepository" value="D:\java-application\Tools\maven_repository" />
<option name="mavenHome" value="D:/java-application/Tools/apache-maven-3.6.3-bin/apache-maven-3.6.3" />
<option name="userSettingsFile" value="D:\java-application\Tools\apache-maven-3.6.3-bin\apache-maven-3.6.3\conf\settings.xml" />
</MavenGeneralSettings>
</option>
</component>
<component name="ProjectCodeStyleSettingsMigration">
<option name="version" value="1" />
</component>
<component name="ProjectId" id="2ZlJtgoTJuftNi00v8rUsc6UusV" />
<component name="ProjectViewState">
<option name="flattenPackages" value="true" />
<option name="foldersAlwaysOnTop" value="false" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrary" value="Arquillian JUnit4" />
<property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrarySuperClass.Arquillian JUnit4" value="" />
<property name="jdk.selected.JAVA_MODULE" value="1.8" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/spring_tx_01/src/main/resources" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.tslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.path.for.package.tslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="node.js.selected.package.tslint" value="(autodetect)" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15527344" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="editor.preferences.import" />
</component>
<component name="RecentsManager">
<key name="CreateTestDialog.RecentsKey">
<recent name="" />
</key>
<key name="CreateClassDialog.RecentsKey">
<recent name="com.zhangzeyuan.dao" />
<recent name="com.zhangzeyuan.bean" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.zhangzeyuan.test" />
<recent name="com.zhangzeyuan.aspect" />
<recent name="com.zhangzeyuan.dao" />
<recent name="com.zhangzeyuan.dao.impl" />
</key>
<key name="CreateTestDialog.Recents.Supers">
<recent name="" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\ideaWork\spring_all\spring_tx_01\src\main\resources" />
<recent name="D:\ideaWork\spring_all\spring_jdbctemplate_01\src\main\resources" />
<recent name="D:\ideaWork\spring_all\spring_aop_01\src\main\java\com\zhangzeyuan" />
<recent name="D:\ideaWork\spring_all\spring_aop_01\src\test\java" />
<recent name="D:\ideaWork\spring_all\spring_ioc_01\src\main\resources" />
</key>
</component>
<component name="RunManager" selected="JUnit.Test1.test1 (1)">
<configuration name="CGLIBProxy" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.zhangzeyuan.proxy.CGLIBProxy" />
<module name="spring_aop_01" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zhangzeyuan.proxy.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="DynamicProxy" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.zhangzeyuan.proxy.DynamicProxy" />
<module name="spring_aop_01" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zhangzeyuan.proxy.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test1" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.zhangzeyuan.test.Test1" />
<module name="spring_jdbctemplate_01" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zhangzeyuan.test.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test1.test1 (1)" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="spring_tx_01" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zhangzeyuan.test.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="com.zhangzeyuan.test" />
<option name="MAIN_CLASS_NAME" value="com.zhangzeyuan.test.Test1" />
<option name="METHOD_NAME" value="test1" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test1.test1" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="spring_aop_01" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zhangzeyuan.aspect.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="com.zhangzeyuan.aspect" />
<option name="MAIN_CLASS_NAME" value="com.zhangzeyuan.aspect.Test1" />
<option name="METHOD_NAME" value="test1" />
<option name="TEST_OBJECT" value="method" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="JUnit.Test1.test1 (1)" />
<item itemvalue="Application.Test1" />
<item itemvalue="JUnit.Test1.test1" />
<item itemvalue="Application.CGLIBProxy" />
<item itemvalue="Application.DynamicProxy" />
</list>
</recent_temporary>
</component>
<component name="ServiceViewManager">
<option name="viewStates">
<list>
<serviceView>
<treeState>
<expand />
<select />
</treeState>
</serviceView>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="f0bedaf3-8875-46fb-a3dc-46b7e7b1dbd0" name="Default Changelist" comment="" />
<created>1702990948518</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1702990948518</updated>
<workItem from="1702990949789" duration="13000" />
<workItem from="1702990967285" duration="5191000" />
<workItem from="1703038159863" duration="12349000" />
<workItem from="1703059314990" duration="11394000" />
<workItem from="1703086911742" duration="92000" />
<workItem from="1703125889256" duration="1461000" />
<workItem from="1703127765244" duration="8010000" />
<workItem from="1703161416334" duration="525000" />
<workItem from="1703163429373" duration="4842000" />
<workItem from="1703215400791" duration="8885000" />
<workItem from="1703227784944" duration="1223000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="WindowStateProjectService">
<state x="361" y="45" width="1049" height="771" key="#Intentions" timestamp="1703077801701">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="361" y="45" width="1049" height="771" key="#Intentions/0.0.1536.816@0.0.1536.816" timestamp="1703077801701" />
<state x="361" y="70" key="#Project_Structure" timestamp="1703216457776">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="361" y="70" key="#Project_Structure/0.0.1536.816@0.0.1536.816" timestamp="1703216457776" />
<state x="574" y="117" key="#com.intellij.ide.util.MemberChooser" timestamp="1703218033843">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="574" y="117" key="#com.intellij.ide.util.MemberChooser/0.0.1536.816@0.0.1536.816" timestamp="1703218033843" />
<state x="391" y="90" key="#com.intellij.ide.util.frameworkSupport.AddFrameworkSupportDialog" timestamp="1703215598514">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="391" y="90" key="#com.intellij.ide.util.frameworkSupport.AddFrameworkSupportDialog/0.0.1536.816@0.0.1536.816" timestamp="1703215598514" />
<state x="472" y="161" key="#com.intellij.refactoring.memberPushDown.PushDownDialog" timestamp="1703044493064">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="472" y="161" key="#com.intellij.refactoring.memberPushDown.PushDownDialog/0.0.1536.816@0.0.1536.816" timestamp="1703044493064" />
<state x="553" y="275" width="429" height="271" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes" timestamp="1703077325663">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="553" y="275" width="429" height="271" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes/0.0.1536.816@0.0.1536.816" timestamp="1703077325663" />
<state x="560" y="174" key="FileChooserDialogImpl" timestamp="1703128795361">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="560" y="174" key="FileChooserDialogImpl/0.0.1536.816@0.0.1536.816" timestamp="1703128795361" />
<state width="1493" height="73" key="GridCell.Tab.0.bottom" timestamp="1703227731518">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="73" key="GridCell.Tab.0.bottom/0.0.1536.816@0.0.1536.816" timestamp="1703227731518" />
<state width="1493" height="73" key="GridCell.Tab.0.center" timestamp="1703227731518">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="73" key="GridCell.Tab.0.center/0.0.1536.816@0.0.1536.816" timestamp="1703227731518" />
<state width="1493" height="73" key="GridCell.Tab.0.left" timestamp="1703227731518">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="73" key="GridCell.Tab.0.left/0.0.1536.816@0.0.1536.816" timestamp="1703227731518" />
<state width="1493" height="73" key="GridCell.Tab.0.right" timestamp="1703227731518">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="73" key="GridCell.Tab.0.right/0.0.1536.816@0.0.1536.816" timestamp="1703227731518" />
<state width="1493" height="283" key="GridCell.Tab.1.bottom" timestamp="1703059265121">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="283" key="GridCell.Tab.1.bottom/0.0.1536.816@0.0.1536.816" timestamp="1703059265121" />
<state width="1493" height="283" key="GridCell.Tab.1.center" timestamp="1703059265121">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="283" key="GridCell.Tab.1.center/0.0.1536.816@0.0.1536.816" timestamp="1703059265121" />
<state width="1493" height="283" key="GridCell.Tab.1.left" timestamp="1703059265121">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="283" key="GridCell.Tab.1.left/0.0.1536.816@0.0.1536.816" timestamp="1703059265121" />
<state width="1493" height="283" key="GridCell.Tab.1.right" timestamp="1703059265121">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state width="1493" height="283" key="GridCell.Tab.1.right/0.0.1536.816@0.0.1536.816" timestamp="1703059265121" />
<state x="283" y="21" width="992" height="789" key="SettingsEditor" timestamp="1703164285064">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="283" y="21" width="992" height="789" key="SettingsEditor/0.0.1536.816@0.0.1536.816" timestamp="1703164285064" />
<state x="540" y="127" key="com.intellij.testIntegration.createTest.CreateTestDialog" timestamp="1703083319949">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="540" y="127" key="com.intellij.testIntegration.createTest.CreateTestDialog/0.0.1536.816@0.0.1536.816" timestamp="1703083319949" />
<state x="178" y="136" key="new project wizard" timestamp="1703227718914">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="178" y="136" key="new project wizard/0.0.1536.816@0.0.1536.816" timestamp="1703227718914" />
<state x="425" y="185" key="run.anything.popup" timestamp="1703225547184">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="425" y="185" key="run.anything.popup/0.0.1536.816@0.0.1536.816" timestamp="1703225547184" />
<state x="431" y="137" width="672" height="678" key="search.everywhere.popup" timestamp="1703165382239">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="431" y="137" width="672" height="678" key="search.everywhere.popup/0.0.1536.816@0.0.1536.816" timestamp="1703165382239" />
<state x="449" y="101" key="spring file set editor" timestamp="1703163922899">
<screen x="0" y="0" width="1536" height="816" />
</state>
<state x="449" y="101" key="spring file set editor/0.0.1536.816@0.0.1536.816" timestamp="1703163922899" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/spring_ioc_01/src/test/java/Test01.java</url>
<line>52</line>
<option name="timeStamp" value="3" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-method">
<url>file://$PROJECT_DIR$/spring_ioc_02/src/test/java/Test01.java</url>
<line>30</line>
<properties class="Test01" method="test3">
<option name="EMULATED" value="true" />
</properties>
<option name="timeStamp" value="5" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
</project>

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.zhangzeyuan</groupId>
<artifactId>spring_aop_01</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<spring.version>5.3.5</spring.version>
</properties>
<dependencies>
<!--spring核心容器包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.5</version>
</dependency>
<!--spring切面包-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.3.5</version>
</dependency>
<!--织入包 spring-aspects 已经导入该包,这里可以不导入-->
<!--<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.6</version>
</dependency>-->
<!--aop联盟包-->
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<!--Apache Commons日志包-->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!--德鲁伊连接池-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.12</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!--Junit单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<!--lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.12" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.22" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.11.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
</component>
</module>

@ -0,0 +1,55 @@
package com.zhangzeyuan.aspect;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @Author ZZY_1
* @Date 2023/12/21 16:46
* @Version 1.0
*/
@Component
@Aspect
@Order(1) //Order数字越小,越先代理生成当前对象
public class DaoAspect {
//定义公共切入点 dao包下面所有的类中的所有add开头的方法都进行增强
@Pointcut("execution(* com.zhangzeyuan.dao.*.add*(..))")
public void addPointCut(){};
/**
*
* Before
* JoinPoint
*/
@Before("addPointCut()")
public void methodBefore(JoinPoint joinPoint) {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectA前置通知....");
}
@After("addPointCut()")
public void methodAfter(JoinPoint joinPoint) {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectA后置最终通知....");
}
@AfterReturning(value = "addPointCut()",returning = "res")
public void methodAfterReturning(JoinPoint joinPoint ,Object res) {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectA返回值后通知....");
}
@Around("addPointCut()")
public Object methodAfterReturning(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
System.out.println("DaoAspectA:AroundA invoked");
Object proceed = proceedingJoinPoint.proceed();
System.out.println("DaoAspectA:AroundB invoked");
return proceed;
}
@AfterThrowing(value = "addPointCut()",throwing = "ex")
public void methodAfterThrowing(JoinPoint joinPoint,Exception ex) throws Throwable {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectA抛出异常通知....");
}
}

@ -0,0 +1,55 @@
package com.zhangzeyuan.aspect;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* @Author ZZY_1
* @Date 2023/12/21 16:46
* @Version 1.0
*/
@Component
@Aspect
@Order(2) //Order数字越小,越先代理生成当前对象
public class DaoAspectB {
//定义公共切入点 dao包下面所有的类中的所有add开头的方法都进行增强
@Pointcut("execution(* com.zhangzeyuan.dao.*.add*(..))")
public void addPointCut(){};
/**
*
* Before
* JoinPoint
*/
@Before("addPointCut()")
public void methodBefore(JoinPoint joinPoint) {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectB前置通知....");
}
@After("addPointCut()")
public void methodAfter(JoinPoint joinPoint) {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectB后置最终通知....");
}
@AfterReturning(value = "addPointCut()",returning = "res")
public void methodAfterReturning(JoinPoint joinPoint,Object res) {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectB返回值后通知....");
}
@Around(value = "addPointCut()")
public Object methodAfterReturning(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
System.out.println("DaoAspectB:AroundA invoked");
Object proceed = proceedingJoinPoint.proceed();
System.out.println("DaoAspectB:AroundB invoked");
return proceed;
}
@AfterThrowing(value = "addPointCut()",throwing = "ex")
public void methodAfterThrowing(JoinPoint joinPoint,Exception ex) throws Throwable {
String name = joinPoint.getSignature().getName();
System.out.println(name+":DaoAspectB抛出异常通知....");
}
}

@ -0,0 +1,13 @@
package com.zhangzeyuan.dao;
import org.springframework.stereotype.Repository;
/**
* @Author ZZY_1
* @Date 2023/12/21 16:35
* @Version 1.0
*/
@Repository
public interface EmpDao {
int addEmp(Integer empno, String ename, String job);
}

@ -0,0 +1,13 @@
package com.zhangzeyuan.dao;
import org.springframework.stereotype.Repository;
/**
* @Author ZZY_1
* @Date 2023/12/21 16:35
* @Version 1.0
*/
@Repository
public interface UserDao {
int addUser(Integer userId, String username);
}

@ -0,0 +1,21 @@
package com.zhangzeyuan.dao.impl;
import com.zhangzeyuan.dao.EmpDao;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
/**
* @Author ZZY_1
* @Date 2023/12/21 16:37
* @Version 1.0
*/
@Repository
public class EmpDaoImpl implements EmpDao {
@Override
public int addEmp(Integer empno, String ename, String job) {
System.out.println(ename+":addEmp...");
int a = 1 / 0;
return 0;
}
}

@ -0,0 +1,18 @@
package com.zhangzeyuan.dao.impl;
import com.zhangzeyuan.dao.UserDao;
import org.springframework.stereotype.Repository;
/**
* @Author ZZY_1
* @Date 2023/12/21 16:38
* @Version 1.0
*/
@Repository
public class UserDaoImpl implements UserDao {
@Override
public int addUser(Integer userId, String username) {
System.out.println(username+":addUser...");
return 0;
}
}

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">
<context:component-scan base-package="com.zhangzeyuan"/>\
<aop:aspectj-autoproxy/>
</beans>

@ -0,0 +1,26 @@
package com.zhangzeyuan.aspect;
import com.zhangzeyuan.dao.EmpDao;
import com.zhangzeyuan.dao.UserDao;
import com.zhangzeyuan.dao.impl.UserDaoImpl;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
/**
* @Author ZZY_1
* @Date 2023/12/21 17:03
* @Version 1.0
*/
@Component
public class Test1 {
@Test
public void test1() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = context.getBean( UserDao.class);
// int zhangsan = userDao.addUser(1, "zhangsan");
EmpDao empDao = context.getBean( EmpDao.class);
int i = empDao.addEmp(1 , "aa", "vaitor");
}
}

@ -0,0 +1,82 @@
package com.zhangzeyuan.proxy;
import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;
import java.lang.reflect.Method;
/**
* @Author ZZY_1
* @Date 2023/12/20 22:41
* @Version 1.0
*/
public class CGLIBProxy {
public static void main(String[] args) {
//构造的是一个父类对象,new出来的子类在CGLIB上用不上
PersonB person = new PersonB();
//创建Enhancer对象
Enhancer enhancer = new Enhancer();
//设置父类字节码
enhancer.setSuperclass(person.getClass());
//获取methodInterceptor对象 用于定义父类增强规则
MethodInterceptor methodInterceptor = new MethodInterceptor() {
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
// o 生成新的子类代理对象
// method 父类中原本要执行的方法,这是父类的方法
//方法在调用时,传入的实参,
// methodProxy 子类中重写父类的方法
Object res;
if (method.getName().equals("eat")) {
//如果是eat 增强并运行
System.out.println("吃饭之前要洗手");
res=methodProxy.invokeSuper(o, objects);
System.out.println("吃饭之后要洗手");
}else {
//用子类执行子类对象
res=methodProxy.invokeSuper(o, objects);//子类对象方法的执行,默认会调用重写父类的方法
}
return null;
}
};
//设置回调方法
enhancer.setCallback(methodInterceptor);
//反射出来对象
PersonB personProxy = (PersonB)enhancer.create();
personProxy.setName("张三");
personProxy.eat("包子");
}
}
class PersonB{
private String name;
//无参构造方法,必须要创建,很多反射的细节或者框架的底层需要创建无参构造方法
public PersonB() {
}
public void eat(String foodName) {
System.out.println(name+"eat:"+foodName);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
public PersonB(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

@ -0,0 +1,97 @@
package com.zhangzeyuan.proxy;
import org.junit.Test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Arrays;
/**
* @Author ZZY_1
* @Date 2023/12/20 21:00
* @Version 1.0
*/
public class DynamicProxy {
public static void main(String[] args) {
Dinner dinner =new PersonA("张三");
//ClassLoader loader, 类代理对象的加载器
ClassLoader classLoader = dinner.getClass().getClassLoader();
//Class<?>[] interfaces,被代理对象所实现的所有接口
Class<?>[] interfaces = dinner.getClass().getInterfaces();
//InvocationHandler h 执行处理器对象,专门定义增强的一个规则
InvocationHandler invocationHandler = new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
//当代理对象调用任何方法的时候,都会调用当前的方法
System.out.println("invocation执行了");
//proxy第一个参数是代理对象,告诉我调用的是哪个对象 dinnerProxy
//method 第二个是要增强的方法 就是当前调用的方法给反射过来
//args是所有的属性
Object res =null;
if (method.getName().equals("eat")) {
//代码增强代码:out
System.out.println("饭前要洗手");
res = method.invoke(dinner, args);
String arg = (String) args[0];
System.out.println(arg.toString()+"要漱口");
}else {
res = method.invoke(dinner, args);
}
return res;
}
};
Dinner dinnerProxy = (Dinner)Proxy.newProxyInstance(classLoader, interfaces,invocationHandler );
dinnerProxy.eat("包子");
//dinnerProxy.drink();
}
}
interface Dinner{
void eat(String foodName);
void drink();
}
class PersonA implements Dinner {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public void eat(String foodName) {
System.out.println(name+"eat:"+foodName);
}
@Override
public void drink() {
System.out.println(name+"drink tea");
}
public PersonA(String name) {
this.name = name;
}
}
class Student implements Dinner {
private String name;
@Override
public void eat(String foodName) {
System.out.println(name+"eat:"+foodName);
}
@Override
public void drink() {
System.out.println(name+"drink juice");
}
}

@ -0,0 +1,50 @@
package com.zhangzeyuan.proxy;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author ZZY_1
* @Date 2023/12/20 16:24
* @Version 1.0
*/
public class StaticProxyTest {
public static void main(String[] args) {
//创建被代理类
Person person = new Person("张三");
//创建代理类,这个类增强了person类,将其功能增强了,并且同样声明了借口,可以代替雇主打官司
Layer layer = new Layer(person);
//代理类代替原来的类执行增强后的代码
layer.doCourt();
}
}
//接口
interface Court{
void doCourt();
}
//静态代理类
@Data
@AllArgsConstructor
class Layer implements Court {
private Person person;
@Override
public void doCourt() {
System.out.println("律师取证:张三在旅游,有不在场证据");
System.out.println("总结:张三没有杀人");
person.doCourt();
}
}
//功能较弱的类,被代理的类
@Data
@AllArgsConstructor
@NoArgsConstructor
class Person implements Court{
private String name;
public void doCourt(){
System.out.println(name+":我没有杀人");
}
}

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">
<context:component-scan base-package="com.zhangzeyuan"/>
<aop:aspectj-autoproxy/>
</beans>

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.zhangzeyuan</groupId>
<artifactId>spring_ioc_01</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<spring.version>5.3.5</spring.version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.5" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.16" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.0" level="project" />
<orderEntry type="module-library">
<library name="Maven: com.alibaba:jconsole:1.8.0">
<CLASSES>
<root url="jar://C:/Program Files/Java/jdk1.8.0_261/lib/jconsole.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="Maven: com.alibaba:tools:1.8.0">
<CLASSES>
<root url="jar://C:/Program Files/Java/jdk1.8.0_261/lib/tools.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.11" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.google.protobuf:protobuf-java:2.6.0" level="project" />
</component>
</module>

@ -0,0 +1,19 @@
package com.zhangzeyuan.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author ZZY_1
* @Date 2023/12/20 10:44
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
private String bookName;
private String author;
}

@ -0,0 +1,27 @@
package com.zhangzeyuan.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @Author ZZY_1
* @Date 2023/12/20 10:40
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private String[] books;
private Set<String> bookSet;
private List<String> bookList;
private Map<String,String> bookMap;
private List<Book> bookList2;
}

@ -0,0 +1,37 @@
package com.zhangzeyuan.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author ZZY_1
* @Date 2023/12/19 21:49
* @Version 1.0
*/
@Data
@AllArgsConstructor
public class User {
private Integer userId;
private String username;
private String password;
public User() {
System.out.println("第一步构造对象");
}
public void setUsername(String username) {
this.username = username;
System.out.println("第二步:set方法");
}
public void init() {
System.out.println("第三步:初始化方法");
}
public void destory() {
System.out.println("第五步骤:对象销毁方法");
}
}

@ -0,0 +1,32 @@
package com.zhangzeyuan.factory;
import com.zhangzeyuan.bean.Book;
import org.springframework.beans.factory.FactoryBean;
/**
* @Author ZZY_1
* @Date 2023/12/20 10:54
* @Version 1.0
*/
public class BookFactory implements FactoryBean<Book> {
Book book;
public void initBook() {
book = new Book();
book.setBookName("Java");
book.setAuthor("张三");
}
@Override
public Book getObject() throws Exception {
initBook();
return book;
}
@Override
public Class<?> getObjectType() {
return Book.class;
}
}

@ -0,0 +1,23 @@
package com.zhangzeyuan.process;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
/**
* @Author ZZY_1
* @Date 2023/12/20 11:54
* @Version 1.0
*/
public class MyBeanProcess implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("bean:init对象之前");
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("bean:init对象之后");
return bean;
}
}

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 使用 lazy-init true 是懒加载, scope singleton 是单例,整个项目中只有这一个对象 默认的就是单例模式的,非懒加载的 -->
<bean id="user1" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton"></bean>
<bean id="user2" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton">
<!-- 使用properties赋值需要有setget方法 -->
<property name="userId" value="1"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="user3" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton">
<!-- 使用properties赋值需要有setget方法 -->
<constructor-arg name="userId" value="2"></constructor-arg>
<constructor-arg name="username" value="xiaoming"></constructor-arg>
<constructor-arg name="password" value="123456"></constructor-arg>
</bean>
<bean id="user4" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton">
<!-- 使用properties赋值需要有setget方法 -->
<constructor-arg index="0" value="3"></constructor-arg>
<constructor-arg index="1" value="xiaohong"></constructor-arg>
<constructor-arg index="2" value="123456"></constructor-arg>
</bean>
<!-- 通过c 和 p名称空间实现DI-->
<bean id="user5" class="com.zhangzeyuan.bean.User" p:userId="4" p:username="laoer" p:password="123123"></bean>
<bean id="user6" class="com.zhangzeyuan.bean.User" c:userId="5" c:username="laosan" c:password="123123"></bean>
</beans>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user1" class="com.zhangzeyuan.bean.User">
<!-- 引用数据类型 Integer 赋值为null的方式 -->
<property name="userId" >
<null></null>
</property>
<!-- 特殊符号的声明,在xml中 <为 lt; >为 gt; &为 &amp; -->
<property name="username" value="lt;张gt;&amp;泽源"></property>
<!-- 第二种方式为: <![CDATA[内容]]>-->
<property name="password">
<value><![CDATA[&<zhangzeyuan>]]></value>
</property>
</bean>
</beans>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<util:list id="list">
<bean id="book1" class="com.zhangzeyuan.bean.Book" p:bookName="Java" p:author="张三"></bean>
<bean id="book2" class="com.zhangzeyuan.bean.Book" p:bookName="C++" p:author="张三"></bean>
<bean id="book3" class="com.zhangzeyuan.bean.Book" p:bookName="JVM" p:author="张三"></bean>
</util:list>
<bean id="student" class="com.zhangzeyuan.bean.Student">
<property name="bookList2" ref="list"></property>
</bean>
</beans>

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="bookFactory" class="com.zhangzeyuan.factory.BookFactory"></bean>
</beans>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="user" class="com.zhangzeyuan.bean.User" init-method="init" destroy-method="destory">
<property name="username" value="aaa"></property>
</bean>
<bean id="process" class="com.zhangzeyuan.process.MyBeanProcess"></bean>
</beans>

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>

@ -0,0 +1,4 @@
jdbc_username=root
jdbc_password=root
jdbc_url=jdbc:mysql://192.168.56.99:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
jdbc_driver=com.mysql.jdbc.Driver

@ -0,0 +1,59 @@
import com.alibaba.druid.pool.DruidDataSource;
import com.zhangzeyuan.bean.Book;
import com.zhangzeyuan.bean.Student;
import com.zhangzeyuan.bean.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @Author ZZY_1
* @Date 2023/12/20 10:15
* @Version 1.0
*/
public class Test01 {
@Test
public void test1() {
ClassPathXmlApplicationContext context2 = new ClassPathXmlApplicationContext("applicationContext2.xml");
User user1 = context2.getBean("user1", User.class);
System.out.println(user1);
System.exit(0);
}
@Test
public void test2() {
ClassPathXmlApplicationContext context2 = new ClassPathXmlApplicationContext("applicationContext4.xml");
Student student = context2.getBean("student", Student.class);
System.out.println(student);
System.exit(0);
}
@Test
public void test3() {
ClassPathXmlApplicationContext context2 = new ClassPathXmlApplicationContext("applicationContext5.xml");
Book book = context2.getBean("bookFactory", Book.class);
System.out.println(book);
System.exit(0);
}
@Test
public void test4() {
// ApplicationContext context2 = new ClassPathXmlApplicationContext("applicationContext6.xml");
ClassPathXmlApplicationContext context2 = new ClassPathXmlApplicationContext("applicationContext6.xml");
User user = context2.getBean("user", User.class);
System.out.println("第四步:对象获取:"+user);
//第五步:执行销毁方法 关闭容器
context2.close();
System.exit(0);
}
@Test
public void test5() {
ClassPathXmlApplicationContext context2 = new ClassPathXmlApplicationContext("applicationContext7.xml");
DruidDataSource dataSource = context2.getBean("dataSource", DruidDataSource.class);
System.out.println(dataSource);
//关闭容器
context2.close();
System.exit(0);
}
}

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 使用 lazy-init true 是懒加载, scope singleton 是单例,整个项目中只有这一个对象 默认的就是单例模式的,非懒加载的 -->
<bean id="user1" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton"></bean>
<bean id="user2" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton">
<!-- 使用properties赋值需要有setget方法 -->
<property name="userId" value="1"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="user3" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton">
<!-- 使用properties赋值需要有setget方法 -->
<constructor-arg name="userId" value="2"></constructor-arg>
<constructor-arg name="username" value="xiaoming"></constructor-arg>
<constructor-arg name="password" value="123456"></constructor-arg>
</bean>
<bean id="user4" class="com.zhangzeyuan.bean.User" lazy-init="true" scope="singleton">
<!-- 使用properties赋值需要有setget方法 -->
<constructor-arg index="0" value="3"></constructor-arg>
<constructor-arg index="1" value="xiaohong"></constructor-arg>
<constructor-arg index="2" value="123456"></constructor-arg>
</bean>
<!-- 通过c 和 p名称空间实现DI-->
<bean id="user5" class="com.zhangzeyuan.bean.User" p:userId="4" p:username="laoer" p:password="123123"></bean>
<bean id="user6" class="com.zhangzeyuan.bean.User" c:userId="5" c:username="laosan" c:password="123123"></bean>
</beans>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user1" class="com.zhangzeyuan.bean.User">
<!-- 引用数据类型 Integer 赋值为null的方式 -->
<property name="userId" >
<null></null>
</property>
<!-- 特殊符号的声明,在xml中 <为 lt; >为 gt; &为 &amp; -->
<property name="username" value="lt;张gt;&amp;泽源"></property>
<!-- 第二种方式为: <![CDATA[内容]]>-->
<property name="password">
<value><![CDATA[&<zhangzeyuan>]]></value>
</property>
</bean>
</beans>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<util:list id="list">
<bean id="book1" class="com.zhangzeyuan.bean.Book" p:bookName="Java" p:author="张三"></bean>
<bean id="book2" class="com.zhangzeyuan.bean.Book" p:bookName="C++" p:author="张三"></bean>
<bean id="book3" class="com.zhangzeyuan.bean.Book" p:bookName="JVM" p:author="张三"></bean>
</util:list>
<bean id="student" class="com.zhangzeyuan.bean.Student">
<property name="bookList2" ref="list"></property>
</bean>
</beans>

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="bookFactory" class="com.zhangzeyuan.factory.BookFactory"></bean>
</beans>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="user" class="com.zhangzeyuan.bean.User" init-method="init" destroy-method="destory">
<property name="username" value="aaa"></property>
</bean>
<bean id="process" class="com.zhangzeyuan.process.MyBeanProcess"></bean>
</beans>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource" class="com.alibaba.druid.pool.xa.DruidXADataSource">
<property name="username" value="${jdbc_username}"/>
<property name="password" value="${jdbc_password}"/>
<property name="url" value="${jdbc_url}"/>
<property name="driverClassName" value="${jdbc_driver}"/>
</bean>
</beans>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save