diff --git a/Spring/Spring5/code/shangguigu01/.idea/.gitignore b/Spring/Spring5/code/shangguigu01/.idea/.gitignore
new file mode 100644
index 00000000..0a8642fa
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu01/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/Spring/Spring5/code/shangguigu01/.idea/compiler.xml b/Spring/Spring5/code/shangguigu01/.idea/compiler.xml
new file mode 100644
index 00000000..a0eb064f
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu01/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu01/.idea/jarRepositories.xml b/Spring/Spring5/code/shangguigu01/.idea/jarRepositories.xml
new file mode 100644
index 00000000..54f518fe
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu01/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu01/.idea/misc.xml b/Spring/Spring5/code/shangguigu01/.idea/misc.xml
new file mode 100644
index 00000000..132404bc
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu01/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu01/pom.xml b/Spring/Spring5/code/shangguigu01/pom.xml
new file mode 100644
index 00000000..4bc75ba6
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu01/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+
+ spring-boot
+ org.springframework.boot
+ 2.2.1.RELEASE
+
+ org.example
+ shangguigu01
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu01/src/main/java/com/ykl/HelloWorld.java b/Spring/Spring5/code/shangguigu01/src/main/java/com/ykl/HelloWorld.java
new file mode 100644
index 00000000..df1bef46
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu01/src/main/java/com/ykl/HelloWorld.java
@@ -0,0 +1,15 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl;
+
+/**
+ * @author yinkanglong
+ * @version : HelloWorld, v 0.1 2022-10-08 11:06 yinkanglong Exp $
+ */
+public class HelloWorld {
+ public static void main(String[] args) {
+ System.out.println("hello world");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu01/src/main/java/com/ykl/reactor/ObserverDemo.java b/Spring/Spring5/code/shangguigu01/src/main/java/com/ykl/reactor/ObserverDemo.java
new file mode 100644
index 00000000..7618b57e
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu01/src/main/java/com/ykl/reactor/ObserverDemo.java
@@ -0,0 +1,12 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.reactor;
+
+/**
+ * @author yinkanglong
+ * @version : ObserverDemo, v 0.1 2022-10-12 19:43 yinkanglong Exp $
+ */
+public class ObserverDemo {
+}
diff --git a/Spring/Spring5/code/shangguigu02/.idea/.gitignore b/Spring/Spring5/code/shangguigu02/.idea/.gitignore
new file mode 100644
index 00000000..0a8642fa
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/Spring/Spring5/code/shangguigu02/.idea/misc.xml b/Spring/Spring5/code/shangguigu02/.idea/misc.xml
new file mode 100644
index 00000000..05483570
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu02/.idea/modules.xml b/Spring/Spring5/code/shangguigu02/.idea/modules.xml
new file mode 100644
index 00000000..25a4e288
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu02/.idea/uiDesigner.xml b/Spring/Spring5/code/shangguigu02/.idea/uiDesigner.xml
new file mode 100644
index 00000000..2b63946d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu02/lib/commons-logging-1.2.jar b/Spring/Spring5/code/shangguigu02/lib/commons-logging-1.2.jar
new file mode 100644
index 00000000..93a3b9f6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu02/lib/commons-logging-1.2.jar differ
diff --git a/Spring/Spring5/code/shangguigu02/lib/spring-beans-5.3.23.jar b/Spring/Spring5/code/shangguigu02/lib/spring-beans-5.3.23.jar
new file mode 100644
index 00000000..fcc7cfd6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu02/lib/spring-beans-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu02/lib/spring-context-5.3.23.jar b/Spring/Spring5/code/shangguigu02/lib/spring-context-5.3.23.jar
new file mode 100644
index 00000000..e80b5da4
Binary files /dev/null and b/Spring/Spring5/code/shangguigu02/lib/spring-context-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu02/lib/spring-core-5.3.23.jar b/Spring/Spring5/code/shangguigu02/lib/spring-core-5.3.23.jar
new file mode 100644
index 00000000..78ff1cae
Binary files /dev/null and b/Spring/Spring5/code/shangguigu02/lib/spring-core-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu02/lib/spring-expression-5.3.23.jar b/Spring/Spring5/code/shangguigu02/lib/spring-expression-5.3.23.jar
new file mode 100644
index 00000000..3d10ecea
Binary files /dev/null and b/Spring/Spring5/code/shangguigu02/lib/spring-expression-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean01.xml b/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean01.xml
new file mode 100644
index 00000000..32eeb34a
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean01.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean02.xml b/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean02.xml
new file mode 100644
index 00000000..59a11892
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean02.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean03.xml b/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean03.xml
new file mode 100644
index 00000000..6218817b
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/out/production/shangguigu02/bean03.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu02/shangguigu02.iml b/Spring/Spring5/code/shangguigu02/shangguigu02.iml
new file mode 100644
index 00000000..e7266aab
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/shangguigu02.iml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu02/src/Main.java b/Spring/Spring5/code/shangguigu02/src/Main.java
new file mode 100644
index 00000000..3e1ab5fd
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/Main.java
@@ -0,0 +1,17 @@
+import com.ykl.User;
+
+/**
+ * @author yinkanglong
+ * @version $Id: ${NAME}, v 0.1 ${YEAR}-${MONTH}-${DAY} ${TIME} yinkanglong Exp $
+ */
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ //自己创建对象
+// User user = new User();
+// user.add();
+
+ //通过spring创建对象
+
+ }
+}
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu02/src/bean01.xml b/Spring/Spring5/code/shangguigu02/src/bean01.xml
new file mode 100644
index 00000000..32eeb34a
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/bean01.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu02/src/bean02.xml b/Spring/Spring5/code/shangguigu02/src/bean02.xml
new file mode 100644
index 00000000..59a11892
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/bean02.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu02/src/bean03.xml b/Spring/Spring5/code/shangguigu02/src/bean03.xml
new file mode 100644
index 00000000..6218817b
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/bean03.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/Book.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/Book.java
new file mode 100644
index 00000000..0b21a472
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/Book.java
@@ -0,0 +1,45 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl;
+
+/**
+ * @author yinkanglong
+ * @version : Book, v 0.1 2022-10-08 14:32 yinkanglong Exp $
+ */
+public class Book {
+ /**
+ * Getter method for property name.
+ *
+ * @return property value of name
+ */
+ public String getName() {
+ return name;
+ }
+
+ private String name;
+
+ //set方法注入
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ //有参构造函数注入
+ public Book(String name){
+ this.name = name;
+ }
+
+ public Book(){
+
+ }
+
+ public static void main(String[] args) {
+ //使用set方法注入
+ Book book = new Book();
+ book.setName("123");
+
+ //使用有参构造函数注入
+ Book book2 = new Book("abc");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/Order.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/Order.java
new file mode 100644
index 00000000..c663d25c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/Order.java
@@ -0,0 +1,23 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl;
+
+/**
+ * @author yinkanglong
+ * @version : Order, v 0.1 2022-10-08 14:47 yinkanglong Exp $
+ */
+public class Order {
+ private String oname;
+ private String address;
+
+ public Order(String oname, String address) {
+ this.oname = oname;
+ this.address = address;
+ }
+
+ public void test(){
+ System.out.println(this.oname+this.address);
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/User.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/User.java
new file mode 100644
index 00000000..77741a28
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/User.java
@@ -0,0 +1,42 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl;
+
+/**
+ * @author yinkanglong
+ * @version : User, v 0.1 2022-10-08 11:22 yinkanglong Exp $
+ */
+public class User {
+ public User(String username) {
+ Username = username;
+ }
+
+ public User() {
+ }
+ /**
+ * Getter method for property Username.
+ *
+ * @return property value of Username
+ */
+ public String getUsername() {
+ return Username;
+ }
+
+ /**
+ * Setter method for property counterType.
+ *
+ * @param Username value to be assigned to property Username
+ */
+ public void setUsername(String username) {
+ Username = username;
+ }
+
+ private String Username;
+
+
+ public void add(){
+ System.out.println("add user");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/bean/Dept.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/bean/Dept.java
new file mode 100644
index 00000000..40e50d75
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/bean/Dept.java
@@ -0,0 +1,29 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.bean;
+
+/**
+ * @author yinkanglong
+ * @version : Dept, v 0.1 2022-10-08 15:33 yinkanglong Exp $
+ */
+public class Dept {
+ private String dname;
+
+ /**
+ * Setter method for property counterType.
+ *
+ * @param dname value to be assigned to property pname
+ */
+ public void setDname(String dname) {
+ this.dname = dname;
+ }
+
+ @Override
+ public String toString() {
+ return "Dept{" +
+ "pname='" + dname + '\'' +
+ '}';
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/bean/Emp.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/bean/Emp.java
new file mode 100644
index 00000000..a5179f76
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/bean/Emp.java
@@ -0,0 +1,38 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.bean;
+
+/**
+ * @author yinkanglong
+ * @version : Emp, v 0.1 2022-10-08 15:34 yinkanglong Exp $
+ */
+public class Emp {
+ private String ename;
+ private String gender;
+
+ @Override
+ public String toString() {
+ return "Emp{" +
+ "ename='" + ename + '\'' +
+ ", gender='" + gender + '\'' +
+ ", dept=" + dept +
+ '}';
+ }
+
+ public void setDept(Dept dept) {
+ this.dept = dept;
+ }
+
+ private Dept dept;
+
+ public void setEname(String ename) {
+ this.ename = ename;
+ }
+
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/dao/UserDao.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/dao/UserDao.java
new file mode 100644
index 00000000..24c78c4a
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/dao/UserDao.java
@@ -0,0 +1,13 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+/**
+ * @author yinkanglong
+ * @version : UserDao, v 0.1 2022-10-08 15:15 yinkanglong Exp $
+ */
+public interface UserDao {
+ public void update();
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/dao/UserDaoImpl.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/dao/UserDaoImpl.java
new file mode 100644
index 00000000..e3568189
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/dao/UserDaoImpl.java
@@ -0,0 +1,17 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+/**
+ * @author yinkanglong
+ * @version : UserDaoImpl, v 0.1 2022-10-08 15:15 yinkanglong Exp $
+ */
+public class UserDaoImpl implements UserDao{
+
+ @Override
+ public void update(){
+ System.out.println("dao update ...");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/service/UserService.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/service/UserService.java
new file mode 100644
index 00000000..fd459163
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/service/UserService.java
@@ -0,0 +1,31 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.service;
+
+import com.ykl.dao.UserDao;
+
+/**
+ * @author yinkanglong
+ * @version : UserService, v 0.1 2022-10-08 15:14 yinkanglong Exp $
+ */
+public class UserService {
+
+ public UserDao getUserDao() {
+ return userDao;
+ }
+
+ public void setUserDao(UserDao userDao) {
+ this.userDao = userDao;
+ }
+
+ UserDao userDao;
+
+
+ public void add(){
+ System.out.println("service add ...");
+
+ userDao.update();
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test01.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test01.java
new file mode 100644
index 00000000..b9c0009f
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test01.java
@@ -0,0 +1,52 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.testdemo;
+
+import com.ykl.Book;
+import com.ykl.Order;
+import com.ykl.User;
+import org.junit.Test;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test01, v 0.1 2022-10-08 11:27 yinkanglong Exp $
+ */
+public class Test01 {
+ @Test
+ public void testAdd(){
+// 加载spring的配置文件
+// ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
+ BeanFactory context = new ClassPathXmlApplicationContext("bean01.xml");
+
+ // 获取配置创建的对象
+ User user = context.getBean("user", User.class);
+ System.out.println(user);
+ user.add();
+ }
+
+ @Test
+ public void testBook(){
+
+// 在创建对象的过程中就完成了属性的注入
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
+
+ Book book = context.getBean("book", Book.class);
+
+ System.out.println(book.getName());
+
+ }
+
+ @Test
+ public void testOrder(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
+
+ Order order = context.getBean("order", Order.class);
+
+ order.test();
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test02.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test02.java
new file mode 100644
index 00000000..e239ffca
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test02.java
@@ -0,0 +1,28 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.testdemo;
+
+import com.ykl.User;
+import com.ykl.service.UserService;
+import org.junit.Test;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Tst02, v 0.1 2022-10-08 15:23 yinkanglong Exp $
+ */
+public class Test02 {
+ @Test
+ public void testAdd(){
+// 加载spring的配置文件
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean02.xml");
+
+ // 获取配置创建的对象
+ UserService user = context.getBean("userService", UserService.class);
+ user.add();
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test03.java b/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test03.java
new file mode 100644
index 00000000..73b27960
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu02/src/com/ykl/testdemo/Test03.java
@@ -0,0 +1,29 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.testdemo;
+
+import com.ykl.bean.Emp;
+import com.ykl.service.UserService;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test03, v 0.1 2022-10-08 15:45 yinkanglong Exp $
+ */
+public class Test03 {
+ @Test
+ public void testAdd(){
+// 加载spring的配置文件
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean03.xml");
+
+ // 获取配置创建的对象
+ Emp emp = context.getBean("emp", Emp.class);
+ System.out.println(emp);
+ }
+
+
+}
diff --git a/Spring/Spring5/code/shangguigu03/.idea/.gitignore b/Spring/Spring5/code/shangguigu03/.idea/.gitignore
new file mode 100644
index 00000000..0a8642fa
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/Spring/Spring5/code/shangguigu03/.idea/misc.xml b/Spring/Spring5/code/shangguigu03/.idea/misc.xml
new file mode 100644
index 00000000..05483570
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu03/.idea/modules.xml b/Spring/Spring5/code/shangguigu03/.idea/modules.xml
new file mode 100644
index 00000000..3d36e8c9
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu03/.idea/uiDesigner.xml b/Spring/Spring5/code/shangguigu03/.idea/uiDesigner.xml
new file mode 100644
index 00000000..2b63946d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu03/lib/commons-logging-1.2.jar b/Spring/Spring5/code/shangguigu03/lib/commons-logging-1.2.jar
new file mode 100644
index 00000000..93a3b9f6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu03/lib/commons-logging-1.2.jar differ
diff --git a/Spring/Spring5/code/shangguigu03/lib/druid-1.2.13.jar b/Spring/Spring5/code/shangguigu03/lib/druid-1.2.13.jar
new file mode 100644
index 00000000..9cc27d34
Binary files /dev/null and b/Spring/Spring5/code/shangguigu03/lib/druid-1.2.13.jar differ
diff --git a/Spring/Spring5/code/shangguigu03/lib/spring-beans-5.3.23.jar b/Spring/Spring5/code/shangguigu03/lib/spring-beans-5.3.23.jar
new file mode 100644
index 00000000..fcc7cfd6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu03/lib/spring-beans-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu03/lib/spring-context-5.3.23.jar b/Spring/Spring5/code/shangguigu03/lib/spring-context-5.3.23.jar
new file mode 100644
index 00000000..e80b5da4
Binary files /dev/null and b/Spring/Spring5/code/shangguigu03/lib/spring-context-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu03/lib/spring-core-5.3.23.jar b/Spring/Spring5/code/shangguigu03/lib/spring-core-5.3.23.jar
new file mode 100644
index 00000000..78ff1cae
Binary files /dev/null and b/Spring/Spring5/code/shangguigu03/lib/spring-core-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu03/lib/spring-expression-5.3.23.jar b/Spring/Spring5/code/shangguigu03/lib/spring-expression-5.3.23.jar
new file mode 100644
index 00000000..3d10ecea
Binary files /dev/null and b/Spring/Spring5/code/shangguigu03/lib/spring-expression-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean01.xml b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean01.xml
new file mode 100644
index 00000000..9375d729
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean01.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+ java
+ c
+
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
+
+ msyql
+ redis
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean02.xml b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean02.xml
new file mode 100644
index 00000000..fa57323d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean02.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean03.xml b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean03.xml
new file mode 100644
index 00000000..86ab379c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean03.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean04.xml b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean04.xml
new file mode 100644
index 00000000..aedf8b2b
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean04.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean05.xml b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean05.xml
new file mode 100644
index 00000000..ab6da799
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean05.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean06.xml b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean06.xml
new file mode 100644
index 00000000..2c1d7e0d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean06.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean07.xml b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean07.xml
new file mode 100644
index 00000000..550c2789
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/bean07.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/jdbc.properties b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/out/production/shangguigu03/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu03/shangguigu03.iml b/Spring/Spring5/code/shangguigu03/shangguigu03.iml
new file mode 100644
index 00000000..6f95e92c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/shangguigu03.iml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu03/src/Main.java b/Spring/Spring5/code/shangguigu03/src/Main.java
new file mode 100644
index 00000000..7cf1a648
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/Main.java
@@ -0,0 +1,9 @@
+/**
+ * @author yinkanglong
+ * @version $Id: ${NAME}, v 0.1 ${YEAR}-${MONTH}-${DAY} ${TIME} yinkanglong Exp $
+ */
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu03/src/bean01.xml b/Spring/Spring5/code/shangguigu03/src/bean01.xml
new file mode 100644
index 00000000..9375d729
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/bean01.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+ java
+ c
+
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
+
+ msyql
+ redis
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/src/bean02.xml b/Spring/Spring5/code/shangguigu03/src/bean02.xml
new file mode 100644
index 00000000..fa57323d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/bean02.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/src/bean03.xml b/Spring/Spring5/code/shangguigu03/src/bean03.xml
new file mode 100644
index 00000000..86ab379c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/bean03.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/src/bean04.xml b/Spring/Spring5/code/shangguigu03/src/bean04.xml
new file mode 100644
index 00000000..aedf8b2b
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/bean04.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/src/bean05.xml b/Spring/Spring5/code/shangguigu03/src/bean05.xml
new file mode 100644
index 00000000..ab6da799
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/bean05.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/src/bean06.xml b/Spring/Spring5/code/shangguigu03/src/bean06.xml
new file mode 100644
index 00000000..2c1d7e0d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/bean06.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/src/bean07.xml b/Spring/Spring5/code/shangguigu03/src/bean07.xml
new file mode 100644
index 00000000..c8d4e7ca
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/bean07.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/autowire/Dept.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/autowire/Dept.java
new file mode 100644
index 00000000..e403e641
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/autowire/Dept.java
@@ -0,0 +1,38 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.autowire;
+
+/**
+ * @author yinkanglong
+ * @version : Detp, v 0.1 2022-10-09 10:55 yinkanglong Exp $
+ */
+public class Dept {
+ private String dname;
+
+ /**
+ * Getter method for property dname.
+ *
+ * @return property value of dname
+ */
+ public String getDname() {
+ return dname;
+ }
+
+ /**
+ * Setter method for property counterType.
+ *
+ * @param dname value to be assigned to property dname
+ */
+ public void setDname(String dname) {
+ this.dname = dname;
+ }
+
+ @Override
+ public String toString() {
+ return "Dept{" +
+ "dname='" + dname + '\'' +
+ '}';
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/autowire/Emp.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/autowire/Emp.java
new file mode 100644
index 00000000..cad66dc6
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/autowire/Emp.java
@@ -0,0 +1,38 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.autowire;
+
+/**
+ * @author yinkanglong
+ * @version : Emp, v 0.1 2022-10-09 10:55 yinkanglong Exp $
+ */
+public class Emp {
+ private Dept dept;
+
+ /**
+ * Getter method for property dept.
+ *
+ * @return property value of dept
+ */
+ public Dept getDept() {
+ return dept;
+ }
+
+ /**
+ * Setter method for property counterType.
+ *
+ * @param dept value to be assigned to property dept
+ */
+ public void setDept(Dept dept) {
+ this.dept = dept;
+ }
+
+ @Override
+ public String toString() {
+ return "Emp{" +
+ "dept=" + dept +
+ '}';
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/bean/MyBeanPost.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/bean/MyBeanPost.java
new file mode 100644
index 00000000..6c7dafe9
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/bean/MyBeanPost.java
@@ -0,0 +1,28 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.bean;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.lang.Nullable;
+
+/**
+ * @author yinkanglong
+ * @version : MyBeanPost, v 0.1 2022-10-09 10:42 yinkanglong Exp $
+ */
+public class MyBeanPost implements BeanPostProcessor {
+
+ @Override
+ public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
+ System.out.println("后置处理器,前置任务");;
+ return bean;
+ }
+
+ @Override
+ public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
+ System.out.println("后置处理器,后置任务");
+ return bean;
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/bean/Order.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/bean/Order.java
new file mode 100644
index 00000000..4902c15c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/bean/Order.java
@@ -0,0 +1,40 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.bean;
+
+/**
+ * @author yinkanglong
+ * @version : order, v 0.1 2022-10-09 10:17 yinkanglong Exp $
+ */
+public class Order {
+ private String oname;
+
+ public Order(String oname) {
+ this.oname = oname;
+ }
+
+ public Order() {
+ System.out.println("第一步 执行无参构造函数创建bean实例");
+ }
+
+
+ public void setOname(String oname) {
+ this.oname = oname;
+ System.out.println("第二步 调用set方法设置属性值");
+ }
+
+ public String getOname() {
+ return oname;
+ }
+
+ public void initMethod(){
+ System.out.println("第三部 调用初始化方法");
+ }
+
+ public void destroyMethod(){
+ System.out.println("第五步 调用销毁方法");
+ }
+
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Book.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Book.java
new file mode 100644
index 00000000..f6c2e526
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Book.java
@@ -0,0 +1,27 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.collectiontype;
+
+import java.util.List;
+
+/**
+ * @author yinkanglong
+ * @version : Book, v 0.1 2022-10-08 16:29 yinkanglong Exp $
+ */
+public class Book {
+ private List bookList;
+
+
+ public void setBookList(List bookList) {
+ this.bookList = bookList;
+ }
+
+ @Override
+ public String toString() {
+ return "Book{" +
+ "bookList=" + bookList +
+ '}';
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Course.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Course.java
new file mode 100644
index 00000000..e23a5e28
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Course.java
@@ -0,0 +1,29 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.collectiontype;
+
+/**
+ * @author yinkanglong
+ * @version : Course, v 0.1 2022-10-08 16:15 yinkanglong Exp $
+ */
+public class Course {
+ private String cname;
+
+ /**
+ * Setter method for property counterType.
+ *
+ * @param cname value to be assigned to property cname
+ */
+ public void setCname(String cname) {
+ this.cname = cname;
+ }
+
+ @Override
+ public String toString() {
+ return "Course{" +
+ "cname='" + cname + '\'' +
+ '}';
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Student.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Student.java
new file mode 100644
index 00000000..da96ef76
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/collectiontype/Student.java
@@ -0,0 +1,61 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.collectiontype;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author yinkanglong
+ * @version : Student, v 0.1 2022-10-08 16:01 yinkanglong Exp $
+ */
+public class Student {
+ private String[] courses;
+
+ private List list;
+
+ private Map maps;
+
+ private Set sets;
+
+ private List courseList;
+
+
+ public void setCourseList(List courseList) {
+ this.courseList = courseList;
+ }
+
+ public Student() {
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public void setMaps(Map maps) {
+ this.maps = maps;
+ }
+
+ public void setSets(Set sets) {
+ this.sets = sets;
+ }
+
+ public void setCourses(String[] courses) {
+ this.courses = courses;
+ }
+
+ @Override
+ public String toString() {
+ return "Student{" +
+ "courses=" + Arrays.toString(courses) +
+ ", list=" + list +
+ ", maps=" + maps +
+ ", sets=" + sets +
+ ", courseList=" + courseList +
+ '}';
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/factorybean/MyBean.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/factorybean/MyBean.java
new file mode 100644
index 00000000..65bb81e0
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/factorybean/MyBean.java
@@ -0,0 +1,33 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.factorybean;
+
+import com.ykl.collectiontype.Course;
+import org.hamcrest.Factory;
+import org.springframework.beans.factory.FactoryBean;
+
+/**
+ * @author yinkanglong
+ * @version : MyBean, v 0.1 2022-10-08 16:42 yinkanglong Exp $
+ */
+public class MyBean implements FactoryBean {
+
+ //定义返回bea
+ @Override
+ public Course getObject() throws Exception {
+ Course course = new Course();
+ return course;
+ }
+
+ @Override
+ public Class> getObjectType() {
+ return null;
+ }
+
+ @Override
+ public boolean isSingleton() {
+ return FactoryBean.super.isSingleton();
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test01.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test01.java
new file mode 100644
index 00000000..0a55dff9
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test01.java
@@ -0,0 +1,25 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.collectiontype.Student;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test01, v 0.1 2022-10-08 16:09 yinkanglong Exp $
+ */
+public class Test01 {
+
+ @Test
+ public void testCollection(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
+ Student student = context.getBean("student",Student.class);
+ System.out.println(student);
+ }
+
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test02.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test02.java
new file mode 100644
index 00000000..3be68d21
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test02.java
@@ -0,0 +1,26 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.collectiontype.Book;
+import com.ykl.collectiontype.Student;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test01, v 0.1 2022-10-08 16:09 yinkanglong Exp $
+ */
+public class Test02 {
+
+ @Test
+ public void testCollection(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean02.xml");
+ Book book = context.getBean("book",Book.class);
+ System.out.println(book);
+ }
+
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test03.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test03.java
new file mode 100644
index 00000000..976e3817
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test03.java
@@ -0,0 +1,26 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.collectiontype.Book;
+import com.ykl.collectiontype.Course;
+import com.ykl.factorybean.MyBean;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test03, v 0.1 2022-10-09 09:39 yinkanglong Exp $
+ */
+public class Test03 {
+
+ @Test
+ public void testCollection(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean03.xml");
+ Course myBean = context.getBean("mybean", Course.class);
+ System.out.println(myBean);
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test04.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test04.java
new file mode 100644
index 00000000..706dba4f
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test04.java
@@ -0,0 +1,27 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.collectiontype.Book;
+import com.ykl.collectiontype.Course;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test04, v 0.1 2022-10-09 10:01 yinkanglong Exp $
+ */
+public class Test04 {
+ @Test
+ public void testCollection(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean04.xml");
+ Book book01 = context.getBean("book", Book.class);
+ System.out.println(book01.hashCode());
+
+ Book book02 = context.getBean("book",Book.class);
+ System.out.println(book02.hashCode());
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test05.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test05.java
new file mode 100644
index 00000000..8ffc5228
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test05.java
@@ -0,0 +1,25 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.bean.Order;
+import com.ykl.collectiontype.Book;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test05, v 0.1 2022-10-09 10:22 yinkanglong Exp $
+ */
+public class Test05 {
+ @Test
+ public void testCollection(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean05.xml");
+ Order order = context.getBean("order", Order.class);
+ System.out.println("第四步 获取bean实例对象");
+ ((ClassPathXmlApplicationContext)context).close();
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test06.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test06.java
new file mode 100644
index 00000000..fc36f791
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test06.java
@@ -0,0 +1,24 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.autowire.Emp;
+import com.ykl.bean.Order;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test05, v 0.1 2022-10-09 10:22 yinkanglong Exp $
+ */
+public class Test06 {
+ @Test
+ public void testCollection(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean06.xml");
+ Emp emp = context.getBean("emp", Emp.class);
+ System.out.println(emp);
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test07.java b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test07.java
new file mode 100644
index 00000000..577e94d4
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/com/ykl/test/Test07.java
@@ -0,0 +1,24 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.ykl.autowire.Emp;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test07, v 0.1 2022-10-09 11:27 yinkanglong Exp $
+ */
+public class Test07 {
+ @Test
+ public void testCollection(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean07.xml");
+ DruidDataSource dataSource = context.getBean("dataSource", DruidDataSource.class);
+ System.out.println(dataSource);
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu03/src/jdbc.properties b/Spring/Spring5/code/shangguigu03/src/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu03/src/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/.idea/.gitignore b/Spring/Spring5/code/shangguigu04/.idea/.gitignore
new file mode 100644
index 00000000..0a8642fa
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/Spring/Spring5/code/shangguigu04/.idea/misc.xml b/Spring/Spring5/code/shangguigu04/.idea/misc.xml
new file mode 100644
index 00000000..05483570
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/.idea/modules.xml b/Spring/Spring5/code/shangguigu04/.idea/modules.xml
new file mode 100644
index 00000000..e6724950
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/.idea/uiDesigner.xml b/Spring/Spring5/code/shangguigu04/.idea/uiDesigner.xml
new file mode 100644
index 00000000..2b63946d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/lib/commons-logging-1.2.jar b/Spring/Spring5/code/shangguigu04/lib/commons-logging-1.2.jar
new file mode 100644
index 00000000..93a3b9f6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu04/lib/commons-logging-1.2.jar differ
diff --git a/Spring/Spring5/code/shangguigu04/lib/druid-1.2.13.jar b/Spring/Spring5/code/shangguigu04/lib/druid-1.2.13.jar
new file mode 100644
index 00000000..9cc27d34
Binary files /dev/null and b/Spring/Spring5/code/shangguigu04/lib/druid-1.2.13.jar differ
diff --git a/Spring/Spring5/code/shangguigu04/lib/spring-aop-5.3.23.jar b/Spring/Spring5/code/shangguigu04/lib/spring-aop-5.3.23.jar
new file mode 100644
index 00000000..c7ee78de
Binary files /dev/null and b/Spring/Spring5/code/shangguigu04/lib/spring-aop-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu04/lib/spring-beans-5.3.23.jar b/Spring/Spring5/code/shangguigu04/lib/spring-beans-5.3.23.jar
new file mode 100644
index 00000000..fcc7cfd6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu04/lib/spring-beans-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu04/lib/spring-context-5.3.23.jar b/Spring/Spring5/code/shangguigu04/lib/spring-context-5.3.23.jar
new file mode 100644
index 00000000..e80b5da4
Binary files /dev/null and b/Spring/Spring5/code/shangguigu04/lib/spring-context-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu04/lib/spring-core-5.3.23.jar b/Spring/Spring5/code/shangguigu04/lib/spring-core-5.3.23.jar
new file mode 100644
index 00000000..78ff1cae
Binary files /dev/null and b/Spring/Spring5/code/shangguigu04/lib/spring-core-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu04/lib/spring-expression-5.3.23.jar b/Spring/Spring5/code/shangguigu04/lib/spring-expression-5.3.23.jar
new file mode 100644
index 00000000..3d10ecea
Binary files /dev/null and b/Spring/Spring5/code/shangguigu04/lib/spring-expression-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean01.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean01.xml
new file mode 100644
index 00000000..9375d729
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean01.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+ java
+ c
+
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
+
+ msyql
+ redis
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean02.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean02.xml
new file mode 100644
index 00000000..fa57323d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean02.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean03.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean03.xml
new file mode 100644
index 00000000..86ab379c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean03.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean04.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean04.xml
new file mode 100644
index 00000000..aedf8b2b
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean04.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean05.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean05.xml
new file mode 100644
index 00000000..ab6da799
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean05.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean06.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean06.xml
new file mode 100644
index 00000000..2c1d7e0d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean06.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean07.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean07.xml
new file mode 100644
index 00000000..550c2789
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/bean07.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/jdbc.properties b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu03/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu04/bean01.xml b/Spring/Spring5/code/shangguigu04/out/production/shangguigu04/bean01.xml
new file mode 100644
index 00000000..6cb049f4
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu04/bean01.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/out/production/shangguigu04/jdbc.properties b/Spring/Spring5/code/shangguigu04/out/production/shangguigu04/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/out/production/shangguigu04/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/shangguigu04.iml b/Spring/Spring5/code/shangguigu04/shangguigu04.iml
new file mode 100644
index 00000000..ca06320e
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/shangguigu04.iml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/src/Main.java b/Spring/Spring5/code/shangguigu04/src/Main.java
new file mode 100644
index 00000000..7cf1a648
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/Main.java
@@ -0,0 +1,9 @@
+/**
+ * @author yinkanglong
+ * @version $Id: ${NAME}, v 0.1 ${YEAR}-${MONTH}-${DAY} ${TIME} yinkanglong Exp $
+ */
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu04/src/bean01.xml b/Spring/Spring5/code/shangguigu04/src/bean01.xml
new file mode 100644
index 00000000..6cb049f4
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/bean01.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu04/src/com/ykl/config/SpringConfig.java b/Spring/Spring5/code/shangguigu04/src/com/ykl/config/SpringConfig.java
new file mode 100644
index 00000000..29b0f0da
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/com/ykl/config/SpringConfig.java
@@ -0,0 +1,19 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.config;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author yinkanglong
+ * @version : SpringConfig, v 0.1 2022-10-09 13:18 yinkanglong Exp $
+ */
+@Configuration
+@ComponentScan(basePackages = {"com.ykl"})
+public class SpringConfig {
+
+}
diff --git a/Spring/Spring5/code/shangguigu04/src/com/ykl/dao/UserDo.java b/Spring/Spring5/code/shangguigu04/src/com/ykl/dao/UserDo.java
new file mode 100644
index 00000000..882bddd9
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/com/ykl/dao/UserDo.java
@@ -0,0 +1,13 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+/**
+ * @author yinkanglong
+ * @version : UserDo, v 0.1 2022-10-09 12:03 yinkanglong Exp $
+ */
+public interface UserDo {
+ public void add();
+}
diff --git a/Spring/Spring5/code/shangguigu04/src/com/ykl/dao/UserDoImpl.java b/Spring/Spring5/code/shangguigu04/src/com/ykl/dao/UserDoImpl.java
new file mode 100644
index 00000000..4aa08f64
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/com/ykl/dao/UserDoImpl.java
@@ -0,0 +1,19 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author yinkanglong
+ * @version : UserDoImpl, v 0.1 2022-10-09 12:04 yinkanglong Exp $
+ */
+@Repository
+public class UserDoImpl implements UserDo{
+ @Override
+ public void add() {
+ System.out.println("dao add ... ...");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu04/src/com/ykl/service/UserService.java b/Spring/Spring5/code/shangguigu04/src/com/ykl/service/UserService.java
new file mode 100644
index 00000000..be37815c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/com/ykl/service/UserService.java
@@ -0,0 +1,28 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.service;
+
+import com.ykl.dao.UserDo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+/**
+ * 与xml配置等价,value值可以省略不写
+ * 默认值是类名称,首字母小写。
+ */
+@Service
+public class UserService {
+
+ @Autowired
+ @Qualifier(value = "userDoImpl")
+ private UserDo userDo;
+ public void add(){
+ System.out.println("service add ... ...");
+
+ userDo.add();
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu04/src/com/ykl/test/Test01.java b/Spring/Spring5/code/shangguigu04/src/com/ykl/test/Test01.java
new file mode 100644
index 00000000..b762d22b
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/com/ykl/test/Test01.java
@@ -0,0 +1,36 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.config.SpringConfig;
+import com.ykl.service.UserService;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test01, v 0.1 2022-10-08 16:09 yinkanglong Exp $
+ */
+public class Test01 {
+
+ @Test
+ public void testService(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
+ UserService userService = context.getBean("userService", UserService.class);
+ userService.add();
+ }
+
+
+ @Test
+ public void testConfig(){
+ //加载配置类
+ ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
+ UserService userService = context.getBean("userService", UserService.class);
+ userService.add();
+ }
+
+}
diff --git a/Spring/Spring5/code/shangguigu04/src/jdbc.properties b/Spring/Spring5/code/shangguigu04/src/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu04/src/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/.idea/.gitignore b/Spring/Spring5/code/shangguigu05/.idea/.gitignore
new file mode 100644
index 00000000..0a8642fa
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/Spring/Spring5/code/shangguigu05/.idea/misc.xml b/Spring/Spring5/code/shangguigu05/.idea/misc.xml
new file mode 100644
index 00000000..05483570
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/.idea/modules.xml b/Spring/Spring5/code/shangguigu05/.idea/modules.xml
new file mode 100644
index 00000000..fb234afc
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/.idea/uiDesigner.xml b/Spring/Spring5/code/shangguigu05/.idea/uiDesigner.xml
new file mode 100644
index 00000000..2b63946d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/lib/aopalliance-1.0.jar b/Spring/Spring5/code/shangguigu05/lib/aopalliance-1.0.jar
new file mode 100644
index 00000000..578b1a0c
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/aopalliance-1.0.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/aspectjweaver-1.9.9.1.jar b/Spring/Spring5/code/shangguigu05/lib/aspectjweaver-1.9.9.1.jar
new file mode 100644
index 00000000..4a1b98cc
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/aspectjweaver-1.9.9.1.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/cglib-3.3.0.jar b/Spring/Spring5/code/shangguigu05/lib/cglib-3.3.0.jar
new file mode 100644
index 00000000..ed830f40
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/cglib-3.3.0.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/commons-logging-1.2.jar b/Spring/Spring5/code/shangguigu05/lib/commons-logging-1.2.jar
new file mode 100644
index 00000000..93a3b9f6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/commons-logging-1.2.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/druid-1.2.13.jar b/Spring/Spring5/code/shangguigu05/lib/druid-1.2.13.jar
new file mode 100644
index 00000000..9cc27d34
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/druid-1.2.13.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/spring-aop-5.3.23.jar b/Spring/Spring5/code/shangguigu05/lib/spring-aop-5.3.23.jar
new file mode 100644
index 00000000..c7ee78de
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/spring-aop-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/spring-aspects-5.3.23.jar b/Spring/Spring5/code/shangguigu05/lib/spring-aspects-5.3.23.jar
new file mode 100644
index 00000000..3857b886
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/spring-aspects-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/spring-beans-5.3.23.jar b/Spring/Spring5/code/shangguigu05/lib/spring-beans-5.3.23.jar
new file mode 100644
index 00000000..fcc7cfd6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/spring-beans-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/spring-context-5.3.23.jar b/Spring/Spring5/code/shangguigu05/lib/spring-context-5.3.23.jar
new file mode 100644
index 00000000..e80b5da4
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/spring-context-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/spring-core-5.3.23.jar b/Spring/Spring5/code/shangguigu05/lib/spring-core-5.3.23.jar
new file mode 100644
index 00000000..78ff1cae
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/spring-core-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/lib/spring-expression-5.3.23.jar b/Spring/Spring5/code/shangguigu05/lib/spring-expression-5.3.23.jar
new file mode 100644
index 00000000..3d10ecea
Binary files /dev/null and b/Spring/Spring5/code/shangguigu05/lib/spring-expression-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean01.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean01.xml
new file mode 100644
index 00000000..9375d729
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean01.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+ java
+ c
+
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
+
+ msyql
+ redis
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean02.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean02.xml
new file mode 100644
index 00000000..fa57323d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean02.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean03.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean03.xml
new file mode 100644
index 00000000..86ab379c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean03.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean04.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean04.xml
new file mode 100644
index 00000000..aedf8b2b
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean04.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean05.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean05.xml
new file mode 100644
index 00000000..ab6da799
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean05.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean06.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean06.xml
new file mode 100644
index 00000000..2c1d7e0d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean06.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean07.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean07.xml
new file mode 100644
index 00000000..550c2789
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/bean07.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/jdbc.properties b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu03/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu04/bean01.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu04/bean01.xml
new file mode 100644
index 00000000..6cb049f4
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu04/bean01.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu04/jdbc.properties b/Spring/Spring5/code/shangguigu05/out/production/shangguigu04/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu04/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean01.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean01.xml
new file mode 100644
index 00000000..6cb049f4
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean01.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean02.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean02.xml
new file mode 100644
index 00000000..5e9fab43
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean02.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean03.xml b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean03.xml
new file mode 100644
index 00000000..73c58296
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/bean03.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/jdbc.properties b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/out/production/shangguigu05/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/shangguigu05.iml b/Spring/Spring5/code/shangguigu05/shangguigu05.iml
new file mode 100644
index 00000000..ec0f6558
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/shangguigu05.iml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/src/Main.java b/Spring/Spring5/code/shangguigu05/src/Main.java
new file mode 100644
index 00000000..7cf1a648
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/Main.java
@@ -0,0 +1,9 @@
+/**
+ * @author yinkanglong
+ * @version $Id: ${NAME}, v 0.1 ${YEAR}-${MONTH}-${DAY} ${TIME} yinkanglong Exp $
+ */
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu05/src/bean01.xml b/Spring/Spring5/code/shangguigu05/src/bean01.xml
new file mode 100644
index 00000000..6cb049f4
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/bean01.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/src/bean02.xml b/Spring/Spring5/code/shangguigu05/src/bean02.xml
new file mode 100644
index 00000000..5e9fab43
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/bean02.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/src/bean03.xml b/Spring/Spring5/code/shangguigu05/src/bean03.xml
new file mode 100644
index 00000000..73c58296
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/bean03.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/PersonProxy.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/PersonProxy.java
new file mode 100644
index 00000000..b155b501
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/PersonProxy.java
@@ -0,0 +1,33 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.aopanno;
+
+import org.aspectj.lang.annotation.After;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author yinkanglong
+ * @version : PersonProxy, v 0.1 2022-10-09 16:01 yinkanglong Exp $
+ */
+@Component
+@Aspect
+@Order(1)
+public class PersonProxy {
+
+
+ //前置通知
+ @Before(value = "execution(* com.ykl.aopanno.User.add(..))")
+ public void before(){
+ System.out.println("执行前...");
+ }
+
+ @After(value = "execution(* com.ykl.aopanno.User.add(..))")
+ public void after(){
+ System.out.println("after...");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/User.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/User.java
new file mode 100644
index 00000000..44c9d510
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/User.java
@@ -0,0 +1,18 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.aopanno;
+
+import org.springframework.stereotype.Component;
+
+/**
+ * @author yinkanglong
+ * @version : User, v 0.1 2022-10-09 15:16 yinkanglong Exp $
+ */
+@Component
+public class User {
+ public void add(){
+ System.out.println("User add ...");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/UserProxy.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/UserProxy.java
new file mode 100644
index 00000000..1aae84da
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopanno/UserProxy.java
@@ -0,0 +1,49 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.aopanno;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.*;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author yinkanglong
+ * @version : UserProxy, v 0.1 2022-10-09 15:16 yinkanglong Exp $
+ */
+@Component
+@Aspect
+public class UserProxy {
+
+ //前置通知
+ @Before(value = "execution(* com.ykl.aopanno.User.add(..))")
+ public void before(){
+ System.out.println("执行前...");
+ }
+
+ @After(value = "execution(* com.ykl.aopanno.User.add(..))")
+ public void after(){
+ System.out.println("after...");
+ }
+
+ @AfterReturning(value = "execution(* com.ykl.aopanno.User.add(..))")
+ public void afterReturn(){
+ System.out.println("afterReturn...");
+ }
+
+ @AfterThrowing(value = "execution(* com.ykl.aopanno.User.add(..))")
+ public void afterThrow(){
+ System.out.println("afterThrow...");
+ }
+
+ @Around(value = "execution(* com.ykl.aopanno.User.add(..))")
+ public void around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{
+ System.out.println("环绕之前....");
+
+ proceedingJoinPoint.proceed();
+
+ System.out.println("环绕之后....");
+ }
+
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/aopxml/Book.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopxml/Book.java
new file mode 100644
index 00000000..16e0e54a
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopxml/Book.java
@@ -0,0 +1,15 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.aopxml;
+
+/**
+ * @author yinkanglong
+ * @version : Book, v 0.1 2022-10-09 16:06 yinkanglong Exp $
+ */
+public class Book {
+ public void add(){
+ System.out.println("Book add ...");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/aopxml/BookProxy.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopxml/BookProxy.java
new file mode 100644
index 00000000..abe07570
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/aopxml/BookProxy.java
@@ -0,0 +1,15 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.aopxml;
+
+/**
+ * @author yinkanglong
+ * @version : BookProxy, v 0.1 2022-10-09 16:06 yinkanglong Exp $
+ */
+public class BookProxy {
+ public void before(){
+ System.out.println("before ......");
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/JDKProxy.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/JDKProxy.java
new file mode 100644
index 00000000..d24d1f6f
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/JDKProxy.java
@@ -0,0 +1,48 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+/**
+ * @author yinkanglong
+ * @version : JDKProxy, v 0.1 2022-10-09 14:31 yinkanglong Exp $
+ */
+public class JDKProxy {
+ public static void main(String[] args) {
+ Class[] interfaces = {UserDo.class};
+
+// Proxy.newProxyInstance(JDKProxy.class.getClassLoader(), interfaces, new InvocationHandler() {
+// @Override
+// public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+// return null;
+// }
+// });
+
+ UserDoImpl userDo = new UserDoImpl();
+ UserDo dao = (UserDo)Proxy.newProxyInstance(JDKProxy.class.getClassLoader(),interfaces,new UserDaoProxy(userDo));
+ int result = dao.add(1,2);
+ System.out.println("结束");
+ }
+}
+class UserDaoProxy implements InvocationHandler{
+ Object object;
+ //把被代理的对象,传递进来。通过有参构造进行传递
+ public UserDaoProxy(Object object){
+ this.object=object;
+ }
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ System.out.println("方法之前的执行"+method.getName());
+
+ Object res = method.invoke(object,args);
+
+ System.out.println("方法执行后");
+
+ return res;
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/UserDo.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/UserDo.java
new file mode 100644
index 00000000..680bf22e
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/UserDo.java
@@ -0,0 +1,14 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+/**
+ * @author yinkanglong
+ * @version : UserDo, v 0.1 2022-10-09 12:03 yinkanglong Exp $
+ */
+public interface UserDo {
+ public int add(int a,int b);
+ public String update(String id);
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/UserDoImpl.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/UserDoImpl.java
new file mode 100644
index 00000000..c4439cd2
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/dao/UserDoImpl.java
@@ -0,0 +1,26 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author yinkanglong
+ * @version : UserDoImpl, v 0.1 2022-10-09 12:04 yinkanglong Exp $
+ */
+@Repository
+public class UserDoImpl implements UserDo{
+
+ @Override
+ public int add(int a, int b) {
+ System.out.println("add 方法执行了");
+ return a+b;
+ }
+
+ @Override
+ public String update(String id) {
+ return id;
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/test/Test01.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/test/Test01.java
new file mode 100644
index 00000000..c6e92f23
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/test/Test01.java
@@ -0,0 +1,15 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+/**
+ * @author yinkanglong
+ * @version : Test01, v 0.1 2022-10-08 16:09 yinkanglong Exp $
+ */
+public class Test01 {
+
+
+
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/com/ykl/test/Test02.java b/Spring/Spring5/code/shangguigu05/src/com/ykl/test/Test02.java
new file mode 100644
index 00000000..8f0cde9c
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/com/ykl/test/Test02.java
@@ -0,0 +1,32 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.test;
+
+import com.ykl.aopanno.User;
+import com.ykl.aopxml.Book;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test02, v 0.1 2022-10-09 15:28 yinkanglong Exp $
+ */
+public class Test02 {
+
+ @Test
+ public void testAop(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean02.xml");
+ User user = context.getBean("user", User.class);
+ user.add();
+ }
+
+ @Test
+ public void testAopXml(){
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean03.xml");
+ Book book = context.getBean("book", Book.class);
+ book.add();
+ }
+}
diff --git a/Spring/Spring5/code/shangguigu05/src/jdbc.properties b/Spring/Spring5/code/shangguigu05/src/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu05/src/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu06/.idea/.gitignore b/Spring/Spring5/code/shangguigu06/.idea/.gitignore
new file mode 100644
index 00000000..0a8642fa
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/Spring/Spring5/code/shangguigu06/.idea/misc.xml b/Spring/Spring5/code/shangguigu06/.idea/misc.xml
new file mode 100644
index 00000000..05483570
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu06/.idea/modules.xml b/Spring/Spring5/code/shangguigu06/.idea/modules.xml
new file mode 100644
index 00000000..1a1f9328
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu06/.idea/uiDesigner.xml b/Spring/Spring5/code/shangguigu06/.idea/uiDesigner.xml
new file mode 100644
index 00000000..2b63946d
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu06/lib/aopalliance-1.0.jar b/Spring/Spring5/code/shangguigu06/lib/aopalliance-1.0.jar
new file mode 100644
index 00000000..578b1a0c
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/aopalliance-1.0.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/aspectjweaver-1.9.9.1.jar b/Spring/Spring5/code/shangguigu06/lib/aspectjweaver-1.9.9.1.jar
new file mode 100644
index 00000000..4a1b98cc
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/aspectjweaver-1.9.9.1.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/cglib-3.3.0.jar b/Spring/Spring5/code/shangguigu06/lib/cglib-3.3.0.jar
new file mode 100644
index 00000000..ed830f40
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/cglib-3.3.0.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/commons-logging-1.2.jar b/Spring/Spring5/code/shangguigu06/lib/commons-logging-1.2.jar
new file mode 100644
index 00000000..93a3b9f6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/commons-logging-1.2.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/druid-1.2.13.jar b/Spring/Spring5/code/shangguigu06/lib/druid-1.2.13.jar
new file mode 100644
index 00000000..9cc27d34
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/druid-1.2.13.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/mysql-connector-java-8.0.30.jar b/Spring/Spring5/code/shangguigu06/lib/mysql-connector-java-8.0.30.jar
new file mode 100644
index 00000000..92ebe1b5
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/mysql-connector-java-8.0.30.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-aop-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-aop-5.3.23.jar
new file mode 100644
index 00000000..c7ee78de
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-aop-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-aspects-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-aspects-5.3.23.jar
new file mode 100644
index 00000000..3857b886
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-aspects-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-beans-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-beans-5.3.23.jar
new file mode 100644
index 00000000..fcc7cfd6
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-beans-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-context-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-context-5.3.23.jar
new file mode 100644
index 00000000..e80b5da4
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-context-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-core-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-core-5.3.23.jar
new file mode 100644
index 00000000..78ff1cae
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-core-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-expression-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-expression-5.3.23.jar
new file mode 100644
index 00000000..3d10ecea
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-expression-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-jdbc-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-jdbc-5.3.23.jar
new file mode 100644
index 00000000..2322be71
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-jdbc-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-orm-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-orm-5.3.23.jar
new file mode 100644
index 00000000..b4fed3ea
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-orm-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/lib/spring-tx-5.3.23.jar b/Spring/Spring5/code/shangguigu06/lib/spring-tx-5.3.23.jar
new file mode 100644
index 00000000..aad7465e
Binary files /dev/null and b/Spring/Spring5/code/shangguigu06/lib/spring-tx-5.3.23.jar differ
diff --git a/Spring/Spring5/code/shangguigu06/out/production/shangguigu06/bean01.xml b/Spring/Spring5/code/shangguigu06/out/production/shangguigu06/bean01.xml
new file mode 100644
index 00000000..47172250
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/out/production/shangguigu06/bean01.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu06/out/production/shangguigu06/jdbc.properties b/Spring/Spring5/code/shangguigu06/out/production/shangguigu06/jdbc.properties
new file mode 100644
index 00000000..90b61e10
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/out/production/shangguigu06/jdbc.properties
@@ -0,0 +1,4 @@
+prop.driverClass=com.mysql.jdbc.Driver
+prop.url=jdbc:mysql://localhost:3306/user
+prop.username=root
+prop.password=123456
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu06/shangguigu06.iml b/Spring/Spring5/code/shangguigu06/shangguigu06.iml
new file mode 100644
index 00000000..d7273c0e
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/shangguigu06.iml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu06/src/Main.java b/Spring/Spring5/code/shangguigu06/src/Main.java
new file mode 100644
index 00000000..7cf1a648
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/src/Main.java
@@ -0,0 +1,9 @@
+/**
+ * @author yinkanglong
+ * @version $Id: ${NAME}, v 0.1 ${YEAR}-${MONTH}-${DAY} ${TIME} yinkanglong Exp $
+ */
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/Spring/Spring5/code/shangguigu06/src/bean01.xml b/Spring/Spring5/code/shangguigu06/src/bean01.xml
new file mode 100644
index 00000000..47172250
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/src/bean01.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Spring/Spring5/code/shangguigu06/src/com/ykl/dao/UserDao.java b/Spring/Spring5/code/shangguigu06/src/com/ykl/dao/UserDao.java
new file mode 100644
index 00000000..9542c662
--- /dev/null
+++ b/Spring/Spring5/code/shangguigu06/src/com/ykl/dao/UserDao.java
@@ -0,0 +1,30 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.dao;
+
+import com.ykl.entity.User;
+
+import java.awt.print.Book;
+import java.util.List;
+
+/**
+ * @author yinkanglong
+ * @version : UserDo, v 0.1 2022-10-09 12:03 yinkanglong Exp $
+ */
+public interface UserDao {
+ public int addUser(User user);
+
+ public void updateUser(User user);
+
+ public void delete(String id);
+
+ int selectCount();
+
+ User findUserInfo(String id);
+
+ List findAll();
+
+ void batchAdd(List