From 8f29d0cc6726bafbc4826c1779b4bd33a06a57c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=B4=E9=9B=A8=E5=A4=9C?= <758366855@qq.com> Date: Sat, 31 Jul 2021 21:26:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(SpringUtil):=20=E4=BF=AE=E5=A4=8D@Autowired?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 修复registerBean中自动注入的问题 2. 增加unRegisterBean注销bean的方法 --- .../hutool/extra/spring/SpringUtilTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilTest.java index ffc4706e7..744aaca93 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilTest.java @@ -6,10 +6,13 @@ import lombok.Data; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Bean; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; @@ -33,6 +36,57 @@ public class SpringUtilTest { Assert.assertEquals("222", registerBean2.getName()); } + /** + * 测试自动注入 + */ + @Test + public void registerBeanTest2() { + TestAutoWired testAutoWired = new TestAutoWired(); + TestBean testBean = new TestBean(); + testBean.setId("123"); + SpringUtil.registerBean("testBean", testBean); + SpringUtil.registerBean("testAutoWired", testAutoWired); + + testAutoWired = SpringUtil.getBean("testAutoWired"); + Assert.assertNotNull(testAutoWired); + Assert.assertNotNull(testAutoWired.getAutowiredBean()); + Assert.assertEquals("123", testAutoWired.getAutowiredBean().getId()); + + } + + /** + * 测试注销bean + */ + @Test + public void unRegisterBeanTest() { + registerBeanTest2(); + Assert.assertNotNull(SpringUtil.getBean("testAutoWired")); + SpringUtil.unRegisterBean("testAutoWired1"); + try { + SpringUtil.getBean("testAutoWired"); + } catch (NoSuchBeanDefinitionException e) { + Assert.assertEquals(e.getClass(), NoSuchBeanDefinitionException.class); + } + } + + /** + * 测试替换bean + + @Test + public void replaceBeanTest() { + registerBeanTest2(); + TestAutoWired testAutoWired = new TestAutoWired(); + TestBean testBean = new TestBean(); + testBean.setId("222"); + Assert.assertEquals("123", SpringUtil.getBean("testBean", TestBean.class).getId()); + SpringUtil.replaceBean("testBean", testBean); + SpringUtil.replaceBean("testAutoWired", testAutoWired); + testAutoWired = SpringUtil.getBean("testAutoWired"); + TestBean testBean1 = testAutoWired.getAutowiredBean(); + Assert.assertEquals("222", testAutoWired.getAutowiredBean().getId()); + Assert.assertEquals("222", testBean1.getId()); + + }*/ @Test public void getBeanTest(){ final Demo2 testDemo = SpringUtil.getBean("testDemo"); @@ -69,4 +123,17 @@ public class SpringUtilTest { return map; } } + + @Data + public static class TestAutoWired { + + @Autowired + // @Resource + private TestBean autowiredBean; + } + + @Data + public static class TestBean { + private String id; + } }