Skip to content

Commit 6014df3

Browse files
author
sampadawagde
committed
JAVA-628: Moved 3 articles to spring-di-2, added README
1 parent 5a9ffef commit 6014df3

33 files changed

+872
-0
lines changed

spring-di-2/README.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## Spring Dependency Injection
2+
3+
This module contains articles about dependency injection with Spring
4+
5+
### Relevant Articles
6+
7+
- [Injecting Spring Beans into Unmanaged Objects](https://www.baeldung.com/spring-inject-bean-into-unmanaged-objects)
8+
- [Injecting a Value in a Static Field in Spring](https://www.baeldung.com/spring-inject-static-field)
9+
- [Spring – Injecting Collections](https://www.baeldung.com/spring-injecting-collections)
10+
- [Wiring in Spring: @Autowired, @Resource and @Inject](https://www.baeldung.com/spring-annotations-resource-inject-autowire)
11+
- More articles: [[<-- prev]](/spring-di)

spring-di-2/pom.xml

+16
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,26 @@
2525
<artifactId>spring-boot-starter-data-jpa</artifactId>
2626
<version>${spring-boot.version}</version>
2727
</dependency>
28+
<dependency>
29+
<groupId>org.springframework.boot</groupId>
30+
<artifactId>spring-boot-starter-web</artifactId>
31+
<version>${spring-boot.version}</version>
32+
</dependency>
2833
<dependency>
2934
<groupId>org.springframework</groupId>
3035
<artifactId>spring-aspects</artifactId>
3136
<version>${spring.version}</version>
3237
</dependency>
38+
<dependency>
39+
<groupId>org.projectlombok</groupId>
40+
<artifactId>lombok</artifactId>
41+
<version>${lombok.version}</version>
42+
</dependency>
43+
<dependency>
44+
<groupId>javax.inject</groupId>
45+
<artifactId>javax.inject</artifactId>
46+
<version>${javax.inject.version}</version>
47+
</dependency>
3348
</dependencies>
3449

3550
<build>
@@ -61,5 +76,6 @@
6176
<properties>
6277
<spring-boot.version>2.3.1.RELEASE</spring-boot.version>
6378
<aspectj-plugin.version>1.11</aspectj-plugin.version>
79+
<javax.inject.version>1</javax.inject.version>
6480
</properties>
6581
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.baeldung.collection;
2+
3+
/**
4+
* Created by Gebruiker on 5/22/2018.
5+
*/
6+
public class BaeldungBean {
7+
8+
private String name;
9+
10+
public BaeldungBean(String name) {
11+
this.name = name;
12+
}
13+
14+
@Override
15+
public String toString() {
16+
return name;
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.baeldung.collection;
2+
3+
import org.springframework.beans.factory.annotation.Qualifier;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.core.annotation.Order;
7+
8+
import java.util.*;
9+
10+
@Configuration
11+
public class CollectionConfig {
12+
13+
@Bean
14+
public CollectionsBean getCollectionsBean() {
15+
return new CollectionsBean(new HashSet<>(Arrays.asList("John", "Adam", "Harry")));
16+
}
17+
18+
@Bean
19+
public List<String> nameList(){
20+
return Arrays.asList("John", "Adam", "Harry", null);
21+
}
22+
23+
@Bean
24+
public Map<Integer, String> nameMap(){
25+
Map<Integer, String> nameMap = new HashMap<>();
26+
nameMap.put(1, "John");
27+
nameMap.put(2, "Adam");
28+
nameMap.put(3, "Harry");
29+
return nameMap;
30+
}
31+
32+
@Bean
33+
@Qualifier("CollectionsBean")
34+
@Order(2)
35+
public BaeldungBean getElement() {
36+
return new BaeldungBean("John");
37+
}
38+
39+
@Bean
40+
@Order(3)
41+
public BaeldungBean getAnotherElement() {
42+
return new BaeldungBean("Adam");
43+
}
44+
45+
@Bean
46+
@Order(1)
47+
public BaeldungBean getOneMoreElement() {
48+
return new BaeldungBean("Harry");
49+
}
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.baeldung.collection;
2+
3+
import org.springframework.context.ApplicationContext;
4+
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
5+
6+
/**
7+
* Created by Gebruiker on 5/18/2018.
8+
*/
9+
public class CollectionInjectionDemo {
10+
11+
public static void main(String[] args) {
12+
13+
ApplicationContext context = new AnnotationConfigApplicationContext(CollectionConfig.class);
14+
CollectionsBean collectionsBean = context.getBean(CollectionsBean.class);
15+
collectionsBean.printNameList();
16+
collectionsBean.printNameSet();
17+
collectionsBean.printNameMap();
18+
collectionsBean.printBeanList();
19+
collectionsBean.printNameListWithDefaults();
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.baeldung.collection;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.Set;
7+
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.beans.factory.annotation.Qualifier;
10+
import org.springframework.beans.factory.annotation.Value;
11+
12+
/**
13+
* Created by Gebruiker on 5/18/2018.
14+
*/
15+
public class CollectionsBean {
16+
17+
@Autowired
18+
private List<String> nameList;
19+
20+
private Set<String> nameSet;
21+
22+
private Map<Integer, String> nameMap;
23+
24+
@Autowired(required = false)
25+
@Qualifier("CollectionsBean")
26+
private List<BaeldungBean> beanList = new ArrayList<>();
27+
28+
@Value("${names.list:}#{T(java.util.Collections).emptyList()}")
29+
private List<String> nameListWithDefaultValue;
30+
31+
public CollectionsBean() {
32+
}
33+
34+
public CollectionsBean(Set<String> strings) {
35+
this.nameSet = strings;
36+
}
37+
38+
@Autowired
39+
public void setNameMap(Map<Integer, String> nameMap) {
40+
this.nameMap = nameMap;
41+
}
42+
43+
public void printNameList() {
44+
System.out.println(nameList);
45+
}
46+
47+
public void printNameSet() {
48+
System.out.println(nameSet);
49+
}
50+
51+
public void printNameMap() {
52+
System.out.println(nameMap);
53+
}
54+
55+
public void printBeanList() {
56+
System.out.println(beanList);
57+
}
58+
59+
public void printNameListWithDefaults() {
60+
System.out.println(nameListWithDefaultValue);
61+
}
62+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.baeldung.dependency;
2+
3+
import org.springframework.stereotype.Component;
4+
5+
@Component
6+
public class AnotherArbitraryDependency extends ArbitraryDependency {
7+
8+
private final String label = "Another Arbitrary Dependency";
9+
10+
public String toString() {
11+
return label;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.baeldung.dependency;
2+
3+
import org.springframework.stereotype.Component;
4+
5+
@Component(value = "autowiredFieldDependency")
6+
public class ArbitraryDependency {
7+
8+
private final String label = "Arbitrary Dependency";
9+
10+
public String toString() {
11+
return label;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.baeldung.dependency;
2+
3+
import org.springframework.stereotype.Component;
4+
5+
@Component
6+
public class YetAnotherArbitraryDependency extends ArbitraryDependency {
7+
8+
private final String label = "Yet Another Arbitrary Dependency";
9+
10+
public String toString() {
11+
return label;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.baeldung.staticvalue.injection;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
6+
import org.springframework.context.annotation.PropertySource;
7+
8+
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
9+
@PropertySource("/application.properties")
10+
11+
public class Application {
12+
13+
public static void main(String[] args) {
14+
SpringApplication.run(Application.class, args);
15+
}
16+
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.baeldung.staticvalue.injection;
2+
3+
import org.springframework.beans.factory.annotation.Value;
4+
import org.springframework.web.bind.annotation.GetMapping;
5+
import org.springframework.web.bind.annotation.RestController;
6+
7+
import java.util.Arrays;
8+
import java.util.List;
9+
10+
@RestController
11+
public class PropertyController {
12+
13+
@Value("${name}")
14+
private String name;
15+
16+
@Value("${name}")
17+
private static String NAME_NULL;
18+
19+
private static String NAME_STATIC;
20+
21+
@Value("${name}")
22+
public void setNameStatic(String name){
23+
PropertyController.NAME_STATIC = name;
24+
}
25+
26+
@GetMapping("/properties")
27+
public List<String> getProperties(){
28+
return Arrays.asList(this.name, NAME_STATIC, NAME_NULL) ;
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name = Inject a value to a static field
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.baeldung.wiring.configuration;
2+
3+
import org.springframework.context.annotation.ComponentScan;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@ComponentScan(basePackages = {"com.baeldung.dependency"})
8+
public class ApplicationContextTestAutowiredName {
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.baeldung.wiring.configuration;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
import com.baeldung.dependency.AnotherArbitraryDependency;
7+
import com.baeldung.dependency.ArbitraryDependency;
8+
9+
@Configuration
10+
public class ApplicationContextTestAutowiredQualifier {
11+
12+
@Bean
13+
public ArbitraryDependency autowiredFieldDependency() {
14+
ArbitraryDependency autowiredFieldDependency = new ArbitraryDependency();
15+
16+
return autowiredFieldDependency;
17+
}
18+
19+
@Bean
20+
public ArbitraryDependency anotherAutowiredFieldDependency() {
21+
ArbitraryDependency anotherAutowiredFieldDependency = new AnotherArbitraryDependency();
22+
23+
return anotherAutowiredFieldDependency;
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.baeldung.wiring.configuration;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
import com.baeldung.dependency.ArbitraryDependency;
7+
8+
@Configuration
9+
public class ApplicationContextTestAutowiredType {
10+
11+
@Bean
12+
public ArbitraryDependency autowiredFieldDependency() {
13+
ArbitraryDependency autowiredFieldDependency = new ArbitraryDependency();
14+
return autowiredFieldDependency;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.baeldung.wiring.configuration;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
import com.baeldung.dependency.ArbitraryDependency;
7+
import com.baeldung.dependency.YetAnotherArbitraryDependency;
8+
9+
@Configuration
10+
public class ApplicationContextTestInjectName {
11+
12+
@Bean
13+
public ArbitraryDependency yetAnotherFieldInjectDependency() {
14+
ArbitraryDependency yetAnotherFieldInjectDependency = new YetAnotherArbitraryDependency();
15+
return yetAnotherFieldInjectDependency;
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.baeldung.wiring.configuration;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
import com.baeldung.dependency.AnotherArbitraryDependency;
7+
import com.baeldung.dependency.ArbitraryDependency;
8+
9+
@Configuration
10+
public class ApplicationContextTestInjectQualifier {
11+
12+
@Bean
13+
public ArbitraryDependency defaultFile() {
14+
ArbitraryDependency defaultFile = new ArbitraryDependency();
15+
return defaultFile;
16+
}
17+
18+
@Bean
19+
public ArbitraryDependency namedFile() {
20+
ArbitraryDependency namedFile = new AnotherArbitraryDependency();
21+
return namedFile;
22+
}
23+
}

0 commit comments

Comments
 (0)