|
25 | 25 | import java.lang.reflect.Method; |
26 | 26 | import java.lang.reflect.Proxy; |
27 | 27 | import java.util.Collections; |
| 28 | +import java.util.HashMap; |
28 | 29 | import java.util.HashSet; |
29 | 30 | import java.util.LinkedHashMap; |
30 | 31 | import java.util.LinkedHashSet; |
@@ -910,16 +911,15 @@ public void testConstructorInjectionWithPlainMapAsBean() { |
910 | 911 | RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class); |
911 | 912 | bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); |
912 | 913 | bf.registerBeanDefinition("annotatedBean", bd); |
913 | | - Map<String, TestBean> tbm = new LinkedHashMap<String, TestBean>(); |
914 | | - tbm.put("testBean1", new TestBean("tb1")); |
915 | | - tbm.put("testBean2", new TestBean("tb2")); |
916 | | - bf.registerSingleton("testBeans", tbm); |
917 | | - bf.registerSingleton("otherMap", new Properties()); |
| 914 | + RootBeanDefinition tbm = new RootBeanDefinition(CollectionFactoryMethods.class); |
| 915 | + tbm.setUniqueFactoryMethodName("testBeanMap"); |
| 916 | + bf.registerBeanDefinition("myTestBeanMap", tbm); |
| 917 | + bf.registerSingleton("otherMap", new HashMap<Object, Object>()); |
918 | 918 |
|
919 | 919 | MapConstructorInjectionBean bean = (MapConstructorInjectionBean) bf.getBean("annotatedBean"); |
920 | | - assertSame(tbm, bean.getTestBeanMap()); |
| 920 | + assertSame(bf.getBean("myTestBeanMap"), bean.getTestBeanMap()); |
921 | 921 | bean = (MapConstructorInjectionBean) bf.getBean("annotatedBean"); |
922 | | - assertSame(tbm, bean.getTestBeanMap()); |
| 922 | + assertSame(bf.getBean("myTestBeanMap"), bean.getTestBeanMap()); |
923 | 923 | } |
924 | 924 |
|
925 | 925 | @Test |
@@ -954,16 +954,15 @@ public void testConstructorInjectionWithPlainSetAsBean() { |
954 | 954 | RootBeanDefinition bd = new RootBeanDefinition(SetConstructorInjectionBean.class); |
955 | 955 | bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); |
956 | 956 | bf.registerBeanDefinition("annotatedBean", bd); |
957 | | - Set<TestBean> tbs = new LinkedHashSet<TestBean>(); |
958 | | - tbs.add(new TestBean("tb1")); |
959 | | - tbs.add(new TestBean("tb2")); |
960 | | - bf.registerSingleton("testBeanSet", tbs); |
| 957 | + RootBeanDefinition tbs = new RootBeanDefinition(CollectionFactoryMethods.class); |
| 958 | + tbs.setUniqueFactoryMethodName("testBeanSet"); |
| 959 | + bf.registerBeanDefinition("myTestBeanSet", tbs); |
961 | 960 | bf.registerSingleton("otherSet", new HashSet<Object>()); |
962 | 961 |
|
963 | 962 | SetConstructorInjectionBean bean = (SetConstructorInjectionBean) bf.getBean("annotatedBean"); |
964 | | - assertSame(tbs, bean.getTestBeanSet()); |
| 963 | + assertSame(bf.getBean("myTestBeanSet"), bean.getTestBeanSet()); |
965 | 964 | bean = (SetConstructorInjectionBean) bf.getBean("annotatedBean"); |
966 | | - assertSame(tbs, bean.getTestBeanSet()); |
| 965 | + assertSame(bf.getBean("myTestBeanSet"), bean.getTestBeanSet()); |
967 | 966 | } |
968 | 967 |
|
969 | 968 | @Test |
@@ -3203,4 +3202,23 @@ public ProvidedArgumentBean(String[] args) { |
3203 | 3202 | } |
3204 | 3203 | } |
3205 | 3204 |
|
| 3205 | + |
| 3206 | + public static class CollectionFactoryMethods { |
| 3207 | + |
| 3208 | + public static Map<String, TestBean> testBeanMap() { |
| 3209 | + Map<String, TestBean> tbm = new LinkedHashMap<String, TestBean>(); |
| 3210 | + tbm.put("testBean1", new TestBean("tb1")); |
| 3211 | + tbm.put("testBean2", new TestBean("tb2")); |
| 3212 | + return tbm; |
| 3213 | + } |
| 3214 | + |
| 3215 | + public static Set<TestBean> testBeanSet() { |
| 3216 | + Set<TestBean> tbs = new LinkedHashSet<TestBean>(); |
| 3217 | + tbs.add(new TestBean("tb1")); |
| 3218 | + tbs.add(new TestBean("tb2")); |
| 3219 | + return tbs; |
| 3220 | + } |
| 3221 | + |
| 3222 | + } |
| 3223 | + |
3206 | 3224 | } |
0 commit comments