diff --git a/pom.xml b/pom.xml index 6822ae1babef013127b2c5d5caaa24d92b24ff74..916206a55a320a8f777b2a0e76e12a91d54f070a 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,16 @@ 4.12 test + + mysql + mysql-connector-java + 8.0.21 + + + com.alibaba + druid + 1.2.3 + \ No newline at end of file diff --git a/src/main/java/com/kwan/spring5/Orders.java b/src/main/java/com/kwan/spring5/Orders.java index 8504f0cd59e1f6472a308e6ecd54d7d69585789a..a74053df13c595b7d068a05656ea2ae9787ce641 100644 --- a/src/main/java/com/kwan/spring5/Orders.java +++ b/src/main/java/com/kwan/spring5/Orders.java @@ -18,6 +18,13 @@ public class Orders { */ private String address; + /** + * 无参数构造 + */ + public Orders() { + System.out.println("第一步 执行无参数构造创建 bean 实例"); + } + /** * 有参数构造 * @@ -29,6 +36,24 @@ public class Orders { this.address = address; } + public void setOname(String oname) { + this.oname = oname; + System.out.println("第二步 调用 set 方法设置属性值"); + } + + /** + * 创建执行的初始化的方法 + */ + public void initMethod() { + System.out.println("第三步 执行初始化的方法"); + } + + /** + * 创建执行的销毁的方法 + */ + public void destroyMethod() { + System.out.println("第五步 执行销毁的方法"); + } @Override public String toString() { diff --git a/src/main/java/com/kwan/spring5/process/MyBeanPost.java b/src/main/java/com/kwan/spring5/process/MyBeanPost.java new file mode 100644 index 0000000000000000000000000000000000000000..c26acc1d9c1f9034d01807ff02e87b20d5892a1f --- /dev/null +++ b/src/main/java/com/kwan/spring5/process/MyBeanPost.java @@ -0,0 +1,27 @@ +package com.kwan.spring5.process; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; + +/** + * 创建后置处理器实现类 + * + * @author : qinyingjie + * @version : 2.2.0 + * @date : 2022/11/14 21:31 + */ +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/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties new file mode 100644 index 0000000000000000000000000000000000000000..14e459f88b47fb37a6cc1c7b1b842ba76d38c58a --- /dev/null +++ b/src/main/resources/jdbc.properties @@ -0,0 +1,4 @@ +prop.driverClass=com.mysql.jdbc.Driver +prop.url=jdbc:mysql://localhost:3306/kwan +prop.userName=root +prop.password=root \ No newline at end of file diff --git a/src/main/resources/spring12.xml b/src/main/resources/spring12.xml new file mode 100644 index 0000000000000000000000000000000000000000..3714b2e8ff483014118ca60f0be2c05ed2c3e2e6 --- /dev/null +++ b/src/main/resources/spring12.xml @@ -0,0 +1,25 @@ + + + + + 易筋经 + 九阴真经 + 九阳神功 + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/spring13.xml b/src/main/resources/spring13.xml new file mode 100644 index 0000000000000000000000000000000000000000..d6a56467497c04ed19689bbbd2c85e9044dff18e --- /dev/null +++ b/src/main/resources/spring13.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/spring14.xml b/src/main/resources/spring14.xml new file mode 100644 index 0000000000000000000000000000000000000000..1fe5ae91cb2d68ade945594057873a7ba1317409 --- /dev/null +++ b/src/main/resources/spring14.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/spring15.xml b/src/main/resources/spring15.xml new file mode 100644 index 0000000000000000000000000000000000000000..d830c099feb5716697d05f9bdcdf222240c2da03 --- /dev/null +++ b/src/main/resources/spring15.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/Spring_02_UserTest.java b/src/test/java/Spring_00_XmlGetTest.java similarity index 92% rename from src/test/java/Spring_02_UserTest.java rename to src/test/java/Spring_00_XmlGetTest.java index 42a36320255b4d0ecd93e88360a29782b06e060a..079c9d4618e2ac54678026ba6694e515e1fef2e7 100644 --- a/src/test/java/Spring_02_UserTest.java +++ b/src/test/java/Spring_00_XmlGetTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 读取spring配置文件 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_02_UserTest { +public class Spring_00_XmlGetTest { @Test public void test1() { diff --git a/src/test/java/Spring_04_BookTest_01.java b/src/test/java/Spring_01_BookTest.java similarity index 89% rename from src/test/java/Spring_04_BookTest_01.java rename to src/test/java/Spring_01_BookTest.java index 36689ad53442deeef4a7081bacbcf69993f34645..2040437b083dc2bf7d2e99c8169c7d52a045883b 100644 --- a/src/test/java/Spring_04_BookTest_01.java +++ b/src/test/java/Spring_01_BookTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 测试ioc注入bean * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_04_BookTest_01 { +public class Spring_01_BookTest { @Test public void test1() { diff --git a/src/test/java/Spring_03_OrdersTest.java b/src/test/java/Spring_01_OrdersTest.java similarity index 89% rename from src/test/java/Spring_03_OrdersTest.java rename to src/test/java/Spring_01_OrdersTest.java index 3b58db05b1491897030b133fd44714463e38b9cb..e7004e049297fe7837f9e8338003d82e3ee3ef9f 100644 --- a/src/test/java/Spring_03_OrdersTest.java +++ b/src/test/java/Spring_01_OrdersTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 测试ioc注入bean * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_03_OrdersTest { +public class Spring_01_OrdersTest { @Test public void test1() { diff --git a/src/test/java/Spring_01_XmlGetTest.java b/src/test/java/Spring_01_UserTest.java similarity index 93% rename from src/test/java/Spring_01_XmlGetTest.java rename to src/test/java/Spring_01_UserTest.java index f3774c7286ad62e2c1d5a0eadc366b02ba740672..208668bc4522e6b7166852d9c6b466d2e202a2e9 100644 --- a/src/test/java/Spring_01_XmlGetTest.java +++ b/src/test/java/Spring_01_UserTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 测试ioc注入bean * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_01_XmlGetTest { +public class Spring_01_UserTest { @Test public void test1() { diff --git a/src/test/java/Spring_04_BookTest_02.java b/src/test/java/Spring_02_BookTest.java similarity index 89% rename from src/test/java/Spring_04_BookTest_02.java rename to src/test/java/Spring_02_BookTest.java index 746513fc4a24c689c35c3350bd223a9d809a6acc..14b3c10cb217fcd55d9c08ad4df4d30ffc1e27b4 100644 --- a/src/test/java/Spring_04_BookTest_02.java +++ b/src/test/java/Spring_02_BookTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * p-命名空间 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_04_BookTest_02 { +public class Spring_02_BookTest { @Test public void test1() { diff --git a/src/test/java/Spring_04_BookTest_03.java b/src/test/java/Spring_03_BookTest.java similarity index 89% rename from src/test/java/Spring_04_BookTest_03.java rename to src/test/java/Spring_03_BookTest.java index a35e964592dd4e419e3b1dcacbd5e97fc9760740..1bebd9fb423d16fb0103f40da0b3fb040231f638 100644 --- a/src/test/java/Spring_04_BookTest_03.java +++ b/src/test/java/Spring_03_BookTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * null和特殊符号 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_04_BookTest_03 { +public class Spring_03_BookTest { @Test public void test1() { diff --git a/src/test/java/Spring_05_UserServiceTest.java b/src/test/java/Spring_04_UserServiceTest.java similarity index 88% rename from src/test/java/Spring_05_UserServiceTest.java rename to src/test/java/Spring_04_UserServiceTest.java index 78c8f08b58c32ad41f74948c70c5405599b5a92d..25567ccf8df25306cb4958e063cd1df94d6a6877 100644 --- a/src/test/java/Spring_05_UserServiceTest.java +++ b/src/test/java/Spring_04_UserServiceTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * service和dao对象创建 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_05_UserServiceTest { +public class Spring_04_UserServiceTest { @Test public void test2() { diff --git a/src/test/java/Spring_06_DeptTest_01.java b/src/test/java/Spring_05_DeptTest.java similarity index 89% rename from src/test/java/Spring_06_DeptTest_01.java rename to src/test/java/Spring_05_DeptTest.java index 75a65d6e7ec836d231d074d672ca05cf0f261645..5166332530ce6ff0a46e38a96516385e20a748cc 100644 --- a/src/test/java/Spring_06_DeptTest_01.java +++ b/src/test/java/Spring_05_DeptTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 内部bean * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_06_DeptTest_01 { +public class Spring_05_DeptTest { @Test public void test1() { diff --git a/src/test/java/Spring_06_DeptTest_02.java b/src/test/java/Spring_06_DeptTest.java similarity index 89% rename from src/test/java/Spring_06_DeptTest_02.java rename to src/test/java/Spring_06_DeptTest.java index 0021576cc817f5baa8b851c2d8192115e879f970..fc08b5c51ffc1acb4a780bf374561e75bfe3dafe 100644 --- a/src/test/java/Spring_06_DeptTest_02.java +++ b/src/test/java/Spring_06_DeptTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 级联赋值 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_06_DeptTest_02 { +public class Spring_06_DeptTest { @Test public void test1() { diff --git a/src/test/java/Spring_06_DeptTest_03.java b/src/test/java/Spring_07_DeptTest.java similarity index 89% rename from src/test/java/Spring_06_DeptTest_03.java rename to src/test/java/Spring_07_DeptTest.java index bff445b6ad56acfa746d6f0ee07c9cc12c226323..d02ac47bf3a72e5c0dff7de7ffe1c3e2e15fd52d 100644 --- a/src/test/java/Spring_06_DeptTest_03.java +++ b/src/test/java/Spring_07_DeptTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 对象属性 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_06_DeptTest_03 { +public class Spring_07_DeptTest { @Test public void test1() { diff --git a/src/test/java/Spring_07_StuTest_01.java b/src/test/java/Spring_08_StuTest.java similarity index 89% rename from src/test/java/Spring_07_StuTest_01.java rename to src/test/java/Spring_08_StuTest.java index e186c0ed207cd98b377569fb376d79f654484fbc..85040ae4c19d9ba1f2c78593be0646972f64537d 100644 --- a/src/test/java/Spring_07_StuTest_01.java +++ b/src/test/java/Spring_08_StuTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 数组集合 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_07_StuTest_01 { +public class Spring_08_StuTest { @Test public void test1() { diff --git a/src/test/java/Spring_07_StuTest_02.java b/src/test/java/Spring_09_StuTest.java similarity index 89% rename from src/test/java/Spring_07_StuTest_02.java rename to src/test/java/Spring_09_StuTest.java index 1be840fa378621729657615789364c333ad17bd3..bdd69f27f2ca91cb945abbe3bb4baf087b82ccaa 100644 --- a/src/test/java/Spring_07_StuTest_02.java +++ b/src/test/java/Spring_09_StuTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * 对象list * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_07_StuTest_02 { +public class Spring_09_StuTest { @Test public void test1() { diff --git a/src/test/java/Spring_08_BookTest.java b/src/test/java/Spring_10_BookTest.java similarity index 90% rename from src/test/java/Spring_08_BookTest.java rename to src/test/java/Spring_10_BookTest.java index 8608ec6396c888ffc921702253eb40802925a792..a914de427d5e41b25cb880c257170bbb03107bb3 100644 --- a/src/test/java/Spring_08_BookTest.java +++ b/src/test/java/Spring_10_BookTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * util命名空间 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_08_BookTest { +public class Spring_10_BookTest { @Test public void test1() { diff --git a/src/test/java/Spring_09_FactoryBeanTest.java b/src/test/java/Spring_11_FactoryBeanTest.java similarity index 90% rename from src/test/java/Spring_09_FactoryBeanTest.java rename to src/test/java/Spring_11_FactoryBeanTest.java index ae3d2183406acffc3a50f37dc7349230de2dd240..bf3525e1f2e745a29dac78d981be7b7d76188f91 100644 --- a/src/test/java/Spring_09_FactoryBeanTest.java +++ b/src/test/java/Spring_11_FactoryBeanTest.java @@ -4,13 +4,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** - * 测试ioc注入 + * FactoryBean测试 * * @author : qinyingjie * @version : 2.2.0 * @date : 2022/11/12 18:43 */ -public class Spring_09_FactoryBeanTest { +public class Spring_11_FactoryBeanTest { @Test public void test3() { diff --git a/src/test/java/Spring_12_ScopeTest.java b/src/test/java/Spring_12_ScopeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..cc2463ed254b1c8821b505d1946f5ebe2927255c --- /dev/null +++ b/src/test/java/Spring_12_ScopeTest.java @@ -0,0 +1,26 @@ +import com.kwan.spring5.Book; +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * 作用域 + * + * @author : qinyingjie + * @version : 2.2.0 + * @date : 2022/11/12 18:43 + */ +public class Spring_12_ScopeTest { + + @Test + public void test3() { + ApplicationContext context = + new ClassPathXmlApplicationContext("spring12.xml"); + Book book1 = context.getBean("book", Book.class);//返回值类型可以不是定义的bean类型! + Book book2 = context.getBean("book", Book.class);//返回值类型可以不是定义的bean类型! + System.out.println(book1); + System.out.println(book1); + System.out.println(book1.equals(book2)); + } + +} diff --git a/src/test/java/Spring_13_MyBeanPostTest.java b/src/test/java/Spring_13_MyBeanPostTest.java new file mode 100644 index 0000000000000000000000000000000000000000..aec5551416f69b2de4cda43cd3b87a8a4c0f1f5f --- /dev/null +++ b/src/test/java/Spring_13_MyBeanPostTest.java @@ -0,0 +1,26 @@ +import com.kwan.spring5.Orders; +import org.junit.Test; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * bean的生命周期 + * + * @author : qinyingjie + * @version : 2.2.0 + * @date : 2022/11/12 18:43 + */ +public class Spring_13_MyBeanPostTest { + + @Test + public void testBean3() { + ClassPathXmlApplicationContext context = + new ClassPathXmlApplicationContext("spring13.xml"); + Orders orders = context.getBean("orders", Orders.class); + System.out.println("第四步 获取创建 bean 实例对象"); + System.out.println(orders); + //手动让 bean 实例销毁 + context.close(); + } + + +} diff --git a/src/test/java/Spring_14_DruidDataSourceTest.java b/src/test/java/Spring_14_DruidDataSourceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ae4399d11a28234862077dac401fe39d151928fa --- /dev/null +++ b/src/test/java/Spring_14_DruidDataSourceTest.java @@ -0,0 +1,24 @@ +import com.alibaba.druid.pool.DruidDataSource; +import org.junit.Test; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * 获取连接池的bean + * + * @author : qinyingjie + * @version : 2.2.0 + * @date : 2022/11/12 18:43 + */ +public class Spring_14_DruidDataSourceTest { + + @Test + public void testBean3() { + ClassPathXmlApplicationContext context = + new ClassPathXmlApplicationContext("spring14.xml"); + DruidDataSource dataSource = context.getBean("dataSource", DruidDataSource.class); + System.out.println(dataSource.getPassword()); + System.out.println(dataSource.getUsername()); + System.out.println(dataSource.getUrl()); + System.out.println(dataSource.getDriverClassName()); + } +} diff --git a/src/test/java/Spring_15_DruidDataSourceTest.java b/src/test/java/Spring_15_DruidDataSourceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..1f26389dce64aabcdc586a09773716c3d43e27a9 --- /dev/null +++ b/src/test/java/Spring_15_DruidDataSourceTest.java @@ -0,0 +1,24 @@ +import com.alibaba.druid.pool.DruidDataSource; +import org.junit.Test; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * 引入外部文件 + * + * @author : qinyingjie + * @version : 2.2.0 + * @date : 2022/11/12 18:43 + */ +public class Spring_15_DruidDataSourceTest { + + @Test + public void testBean3() { + ClassPathXmlApplicationContext context = + new ClassPathXmlApplicationContext("spring15.xml"); + DruidDataSource dataSource = context.getBean("dataSource", DruidDataSource.class); + System.out.println(dataSource.getPassword()); + System.out.println(dataSource.getUsername()); + System.out.println(dataSource.getUrl()); + System.out.println(dataSource.getDriverClassName()); + } +}