|
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