From c7fd698159db76413d50ebe6e82e8bb2473584c2 Mon Sep 17 00:00:00 2001 From: qinyingjie Date: Mon, 14 Nov 2022 21:52:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:FactoryBean=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 10 +++++++ src/main/java/com/kwan/spring5/Orders.java | 25 +++++++++++++++++ .../com/kwan/spring5/process/MyBeanPost.java | 27 +++++++++++++++++++ src/main/resources/jdbc.properties | 4 +++ src/main/resources/spring12.xml | 25 +++++++++++++++++ src/main/resources/spring13.xml | 21 +++++++++++++++ src/main/resources/spring14.xml | 18 +++++++++++++ src/main/resources/spring15.xml | 23 ++++++++++++++++ ...serTest.java => Spring_00_XmlGetTest.java} | 4 +-- ...okTest_01.java => Spring_01_BookTest.java} | 4 +-- ...ersTest.java => Spring_01_OrdersTest.java} | 4 +-- ...mlGetTest.java => Spring_01_UserTest.java} | 4 +-- ...okTest_02.java => Spring_02_BookTest.java} | 4 +-- ...okTest_03.java => Spring_03_BookTest.java} | 4 +-- ...st.java => Spring_04_UserServiceTest.java} | 4 +-- ...ptTest_01.java => Spring_05_DeptTest.java} | 4 +-- ...ptTest_02.java => Spring_06_DeptTest.java} | 4 +-- ...ptTest_03.java => Spring_07_DeptTest.java} | 4 +-- ...StuTest_01.java => Spring_08_StuTest.java} | 4 +-- ...StuTest_02.java => Spring_09_StuTest.java} | 4 +-- ..._BookTest.java => Spring_10_BookTest.java} | 4 +-- ...st.java => Spring_11_FactoryBeanTest.java} | 4 +-- src/test/java/Spring_12_ScopeTest.java | 26 ++++++++++++++++++ src/test/java/Spring_13_MyBeanPostTest.java | 26 ++++++++++++++++++ .../java/Spring_14_DruidDataSourceTest.java | 24 +++++++++++++++++ .../java/Spring_15_DruidDataSourceTest.java | 24 +++++++++++++++++ 26 files changed, 281 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/kwan/spring5/process/MyBeanPost.java create mode 100644 src/main/resources/jdbc.properties create mode 100644 src/main/resources/spring12.xml create mode 100644 src/main/resources/spring13.xml create mode 100644 src/main/resources/spring14.xml create mode 100644 src/main/resources/spring15.xml rename src/test/java/{Spring_02_UserTest.java => Spring_00_XmlGetTest.java} (92%) rename src/test/java/{Spring_04_BookTest_01.java => Spring_01_BookTest.java} (89%) rename src/test/java/{Spring_03_OrdersTest.java => Spring_01_OrdersTest.java} (89%) rename src/test/java/{Spring_01_XmlGetTest.java => Spring_01_UserTest.java} (93%) rename src/test/java/{Spring_04_BookTest_02.java => Spring_02_BookTest.java} (89%) rename src/test/java/{Spring_04_BookTest_03.java => Spring_03_BookTest.java} (89%) rename src/test/java/{Spring_05_UserServiceTest.java => Spring_04_UserServiceTest.java} (88%) rename src/test/java/{Spring_06_DeptTest_01.java => Spring_05_DeptTest.java} (89%) rename src/test/java/{Spring_06_DeptTest_02.java => Spring_06_DeptTest.java} (89%) rename src/test/java/{Spring_06_DeptTest_03.java => Spring_07_DeptTest.java} (89%) rename src/test/java/{Spring_07_StuTest_01.java => Spring_08_StuTest.java} (89%) rename src/test/java/{Spring_07_StuTest_02.java => Spring_09_StuTest.java} (89%) rename src/test/java/{Spring_08_BookTest.java => Spring_10_BookTest.java} (90%) rename src/test/java/{Spring_09_FactoryBeanTest.java => Spring_11_FactoryBeanTest.java} (90%) create mode 100644 src/test/java/Spring_12_ScopeTest.java create mode 100644 src/test/java/Spring_13_MyBeanPostTest.java create mode 100644 src/test/java/Spring_14_DruidDataSourceTest.java create mode 100644 src/test/java/Spring_15_DruidDataSourceTest.java diff --git a/pom.xml b/pom.xml index 6822ae1..916206a 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 8504f0c..a74053d 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 0000000..c26acc1 --- /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 0000000..14e459f --- /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 0000000..3714b2e --- /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 0000000..d6a5646 --- /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 0000000..1fe5ae9 --- /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 0000000..d830c09 --- /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 42a3632..079c9d4 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 36689ad..2040437 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 3b58db0..e7004e0 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 f3774c7..208668b 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 746513f..14b3c10 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 a35e964..1bebd9f 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 78c8f08..25567cc 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 75a65d6..5166332 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 0021576..fc08b5c 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 bff445b..d02ac47 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 e186c0e..85040ae 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 1be840f..bdd69f2 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 8608ec6..a914de4 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 ae3d218..bf3525e 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 0000000..cc2463e --- /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 0000000..aec5551 --- /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 0000000..ae4399d --- /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 0000000..1f26389 --- /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()); + } +} -- GitLab