From c7cd7d0744d5b32a55c7230068d9ed55ba723167 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Fri, 18 May 2018 16:10:02 +0400 Subject: [PATCH 1/8] list inject test --- .../baeldung/collection/CollectionConfig.java | 21 +++++++++++++++++++ .../collection/CollectionInjectionDemo.java | 16 ++++++++++++++ .../baeldung/collection/CollectionsBean.java | 18 ++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java create mode 100644 spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java create mode 100644 spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java new file mode 100644 index 0000000000..6034ac9e02 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java @@ -0,0 +1,21 @@ +package com.baeldung.collection; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Arrays; +import java.util.List; + +@Configuration +public class CollectionConfig { + + @Bean + public CollectionsBean getCollectionsBean() { + return new CollectionsBean(); + } + + @Bean + public List nameList(){ + return Arrays.asList("John", "Adam", "Harry"); + } +} diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java new file mode 100644 index 0000000000..10eb6203a9 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java @@ -0,0 +1,16 @@ +package com.baeldung.collection; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +/** + * Created by Gebruiker on 5/18/2018. + */ +public class CollectionInjectionDemo { + + public static void main(String[] args) { + ApplicationContext context = new AnnotationConfigApplicationContext(CollectionConfig.class); + CollectionsBean collectionsBean = (CollectionsBean)context.getBean(CollectionsBean.class); + collectionsBean.printNameList(); + } +} diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java new file mode 100644 index 0000000000..80db4ae6c3 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java @@ -0,0 +1,18 @@ +package com.baeldung.collection; + +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + * Created by Gebruiker on 5/18/2018. + */ +public class CollectionsBean { + + @Autowired + private List nameList; + + public void printNameList() { + System.out.println(nameList); + } +} From d73f653eb036f39e01d3c32a389ec9e942d6a549 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Sat, 19 May 2018 12:50:48 +0400 Subject: [PATCH 2/8] list, set injection --- .../com/baeldung/collection/CollectionConfig.java | 5 +++-- .../collection/CollectionInjectionDemo.java | 4 +++- .../com/baeldung/collection/CollectionsBean.java | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java index 6034ac9e02..8ccf76ebc5 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java @@ -4,6 +4,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Arrays; +import java.util.HashSet; import java.util.List; @Configuration @@ -11,11 +12,11 @@ public class CollectionConfig { @Bean public CollectionsBean getCollectionsBean() { - return new CollectionsBean(); + return new CollectionsBean(new HashSet<>(Arrays.asList("John", "Adam", "Harry"))); } @Bean public List nameList(){ - return Arrays.asList("John", "Adam", "Harry"); + return Arrays.asList("John", "Adam", "Harry", null); } } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java index 10eb6203a9..81d804bce9 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java @@ -9,8 +9,10 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext public class CollectionInjectionDemo { public static void main(String[] args) { + ApplicationContext context = new AnnotationConfigApplicationContext(CollectionConfig.class); - CollectionsBean collectionsBean = (CollectionsBean)context.getBean(CollectionsBean.class); + CollectionsBean collectionsBean = context.getBean(CollectionsBean.class); collectionsBean.printNameList(); + collectionsBean.printNameSet(); } } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java index 80db4ae6c3..2d86a45f70 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java @@ -3,6 +3,7 @@ package com.baeldung.collection; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; +import java.util.Set; /** * Created by Gebruiker on 5/18/2018. @@ -12,7 +13,20 @@ public class CollectionsBean { @Autowired private List nameList; + private Set nameSet; + + public CollectionsBean() { + } + + public CollectionsBean(Set strings) { + this.nameSet = strings; + } + public void printNameList() { System.out.println(nameList); } + + public void printNameSet() { + System.out.println(nameSet); + } } From 4cdf7fe9efdf7345c30449ed24d4243efe1adbf6 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Mon, 21 May 2018 12:15:30 +0400 Subject: [PATCH 3/8] map injection --- .../com/baeldung/collection/CollectionConfig.java | 13 ++++++++++--- .../collection/CollectionInjectionDemo.java | 1 + .../com/baeldung/collection/CollectionsBean.java | 12 ++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java index 8ccf76ebc5..c1881473e7 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java @@ -3,9 +3,7 @@ package com.baeldung.collection; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; +import java.util.*; @Configuration public class CollectionConfig { @@ -19,4 +17,13 @@ public class CollectionConfig { public List nameList(){ return Arrays.asList("John", "Adam", "Harry", null); } + + @Bean + public Map nameMap(){ + Map nameMap = new HashMap<>(); + nameMap.put(1, "John"); + nameMap.put(2, "Adam"); + nameMap.put(3, "Harry"); + return nameMap; + } } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java index 81d804bce9..9a22ea7c0f 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java @@ -14,5 +14,6 @@ public class CollectionInjectionDemo { CollectionsBean collectionsBean = context.getBean(CollectionsBean.class); collectionsBean.printNameList(); collectionsBean.printNameSet(); + collectionsBean.printNameMap(); } } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java index 2d86a45f70..3083c35d87 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java @@ -3,6 +3,7 @@ package com.baeldung.collection; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -15,6 +16,8 @@ public class CollectionsBean { private Set nameSet; + private Map nameMap; + public CollectionsBean() { } @@ -22,6 +25,11 @@ public class CollectionsBean { this.nameSet = strings; } + @Autowired + public void setNameMap(Map nameMap) { + this.nameMap = nameMap; + } + public void printNameList() { System.out.println(nameList); } @@ -29,4 +37,8 @@ public class CollectionsBean { public void printNameSet() { System.out.println(nameSet); } + + public void printNameMap() { + System.out.println(nameMap); + } } From a6655de20c934644e3835114c8b5be9694f51bf0 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Tue, 22 May 2018 16:33:25 +0400 Subject: [PATCH 4/8] bean reference injection --- .../com/baeldung/collection/BaeldungBean.java | 7 +++++++ .../com/baeldung/collection/CollectionConfig.java | 15 +++++++++++++++ .../collection/CollectionInjectionDemo.java | 1 + .../com/baeldung/collection/CollectionsBean.java | 7 +++++++ 4 files changed, 30 insertions(+) create mode 100644 spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java diff --git a/spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java b/spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java new file mode 100644 index 0000000000..6bdc841e10 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java @@ -0,0 +1,7 @@ +package com.baeldung.collection; + +/** + * Created by Gebruiker on 5/22/2018. + */ +public class BaeldungBean { +} diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java index c1881473e7..f683790ce5 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java @@ -26,4 +26,19 @@ public class CollectionConfig { nameMap.put(3, "Harry"); return nameMap; } + + @Bean + public BaeldungBean getElement() { + return new BaeldungBean(); + } + + @Bean + public BaeldungBean getAnotherElement() { + return new BaeldungBean(); + } + + @Bean + public BaeldungBean getOneMoreElement() { + return new BaeldungBean(); + } } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java index 9a22ea7c0f..2e0d9eb8d8 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionInjectionDemo.java @@ -15,5 +15,6 @@ public class CollectionInjectionDemo { collectionsBean.printNameList(); collectionsBean.printNameSet(); collectionsBean.printNameMap(); + collectionsBean.printBeanList(); } } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java index 3083c35d87..071672f35c 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java @@ -18,6 +18,9 @@ public class CollectionsBean { private Map nameMap; + @Autowired + private List beanList; + public CollectionsBean() { } @@ -41,4 +44,8 @@ public class CollectionsBean { public void printNameMap() { System.out.println(nameMap); } + + public void printBeanList() { + System.out.println(beanList); + } } From fa60d4e69e869547b15eb334b03bb78e42a71c5b Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Tue, 22 May 2018 17:07:08 +0400 Subject: [PATCH 5/8] @order --- .../main/java/com/baeldung/collection/CollectionConfig.java | 6 ++++++ .../main/java/com/baeldung/collection/CollectionsBean.java | 2 ++ 2 files changed, 8 insertions(+) diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java index f683790ce5..589517f69d 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java @@ -1,7 +1,9 @@ package com.baeldung.collection; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; import java.util.*; @@ -28,16 +30,20 @@ public class CollectionConfig { } @Bean + @Qualifier("CollectionsBean") + @Order(2) public BaeldungBean getElement() { return new BaeldungBean(); } @Bean + @Order(3) public BaeldungBean getAnotherElement() { return new BaeldungBean(); } @Bean + @Order(1) public BaeldungBean getOneMoreElement() { return new BaeldungBean(); } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java index 071672f35c..5c6965b623 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java @@ -1,6 +1,7 @@ package com.baeldung.collection; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import java.util.List; import java.util.Map; @@ -19,6 +20,7 @@ public class CollectionsBean { private Map nameMap; @Autowired + @Qualifier("CollectionsBean") private List beanList; public CollectionsBean() { From 834be9a7203ed22823feb43e9619f45833760449 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Wed, 30 May 2018 22:19:06 +0400 Subject: [PATCH 6/8] set bean names --- .../java/com/baeldung/collection/BaeldungBean.java | 11 +++++++++++ .../com/baeldung/collection/CollectionConfig.java | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java b/spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java index 6bdc841e10..6d7351df02 100644 --- a/spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java +++ b/spring-core/src/main/java/com/baeldung/collection/BaeldungBean.java @@ -4,4 +4,15 @@ package com.baeldung.collection; * Created by Gebruiker on 5/22/2018. */ public class BaeldungBean { + + private String name; + + public BaeldungBean(String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } } diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java index 589517f69d..fbae2963e5 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionConfig.java @@ -33,18 +33,18 @@ public class CollectionConfig { @Qualifier("CollectionsBean") @Order(2) public BaeldungBean getElement() { - return new BaeldungBean(); + return new BaeldungBean("John"); } @Bean @Order(3) public BaeldungBean getAnotherElement() { - return new BaeldungBean(); + return new BaeldungBean("Adam"); } @Bean @Order(1) public BaeldungBean getOneMoreElement() { - return new BaeldungBean(); + return new BaeldungBean("Harry"); } } From 56bbfd96441da25ff8f9857d3575c2125f02a4b3 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Mon, 4 Jun 2018 10:51:53 +0400 Subject: [PATCH 7/8] required false --- .../src/main/java/com/baeldung/collection/CollectionsBean.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java index 5c6965b623..425516703f 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java @@ -19,7 +19,7 @@ public class CollectionsBean { private Map nameMap; - @Autowired + @Autowired(required = false) @Qualifier("CollectionsBean") private List beanList; From 221131a33c5929288ad7283e59a3c27454110a97 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Mon, 4 Jun 2018 16:41:44 +0400 Subject: [PATCH 8/8] initialize an empty list --- .../src/main/java/com/baeldung/collection/CollectionsBean.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java index 425516703f..a0e985267f 100644 --- a/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java +++ b/spring-core/src/main/java/com/baeldung/collection/CollectionsBean.java @@ -3,6 +3,7 @@ package com.baeldung.collection; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -21,7 +22,7 @@ public class CollectionsBean { @Autowired(required = false) @Qualifier("CollectionsBean") - private List beanList; + private List beanList = new ArrayList<>(); public CollectionsBean() { }