From faa095541e892742208610bd849d8f3063638b68 Mon Sep 17 00:00:00 2001 From: Khoteeswarun Gangadharan NCS Date: Wed, 24 Jan 2018 14:59:01 +0800 Subject: [PATCH 1/2] Spring Dependency Injection Types --- .../AboutuspageService.java | 11 +++++++ .../dependencyinjections/HomepageService.java | 11 +++++++ .../dependencyinjections/Website.java | 18 +++++++++++ ...WebsiteControllerConstructorInjection.java | 27 +++++++++++++++++ .../WebsiteControllerSetterInjection.java | 30 +++++++++++++++++++ .../dependencyinjections-context.xml | 25 ++++++++++++++++ 6 files changed, 122 insertions(+) create mode 100644 spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java create mode 100644 spring-core/src/main/java/com/baeldung/dependencyinjections/HomepageService.java create mode 100644 spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java create mode 100644 spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java create mode 100644 spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java create mode 100644 spring-core/src/main/resources/dependencyinjections-context.xml diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java new file mode 100644 index 000000000000..f8ceb9e14fc1 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java @@ -0,0 +1,11 @@ +package com.baeldung.dependencyinjections; + +import org.springframework.stereotype.Service; + +@Service +public class AboutuspageService { + + public String getContents() { + return "Aboutus page contents"; + } +} diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/HomepageService.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/HomepageService.java new file mode 100644 index 000000000000..d1a54b837623 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/HomepageService.java @@ -0,0 +1,11 @@ +package com.baeldung.dependencyinjections; + +import org.springframework.stereotype.Service; + +@Service +public class HomepageService { + + public String getContents() { + return "Home page contents"; + } +} diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java new file mode 100644 index 000000000000..9a627a04d91d --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java @@ -0,0 +1,18 @@ +package com.baeldung.dependencyinjections; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +public class Website { + + @SuppressWarnings("resource") + public static void main(String[] args) { + ApplicationContext context = new ClassPathXmlApplicationContext("dependencyinjections-context.xml"); + + WebsiteControllerConstructorInjection controller = (WebsiteControllerConstructorInjection) context.getBean("websiteControllerConstructorInjection"); + System.out.println("The contents of the Website are : " + controller.getContentsViaConstructorInjection()); + + WebsiteControllerSetterInjection controllerwithSetterInjection = (WebsiteControllerSetterInjection) context.getBean("websiteControllerSetterInjection"); + System.out.println("The contents of the Website are : " + controllerwithSetterInjection.getContentsViaSetterInjection()); + } +} diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java new file mode 100644 index 000000000000..93de5dc6e56e --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java @@ -0,0 +1,27 @@ +package com.baeldung.dependencyinjections; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class WebsiteControllerConstructorInjection { + + private HomepageService homeService; + + private AboutuspageService aboutusService; + + @Autowired + public WebsiteControllerConstructorInjection(HomepageService homeService, AboutuspageService aboutusService) { + this.homeService = homeService; + this.aboutusService = aboutusService; + } + + public String getContentsViaConstructorInjection() { + StringBuffer websiteContents = new StringBuffer(); + websiteContents.append(homeService.getContents()); + websiteContents.append(" and "); + websiteContents.append(aboutusService.getContents()); + return websiteContents.toString(); + } + +} diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java new file mode 100644 index 000000000000..3f2f356145d6 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java @@ -0,0 +1,30 @@ +package com.baeldung.dependencyinjections; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class WebsiteControllerSetterInjection { + + private HomepageService homeService; + + private AboutuspageService aboutusService; + + @Autowired + public void setHomepageService(HomepageService homeService) { + this.homeService = homeService; + } + + @Autowired + public void setAboutuspageService(AboutuspageService aboutusService) { + this.aboutusService = aboutusService; + } + + public String getContentsViaSetterInjection() { + StringBuffer websiteContents = new StringBuffer(); + websiteContents.append(homeService.getContents()); + websiteContents.append(" and "); + websiteContents.append(aboutusService.getContents()); + return websiteContents.toString(); + } +} diff --git a/spring-core/src/main/resources/dependencyinjections-context.xml b/spring-core/src/main/resources/dependencyinjections-context.xml new file mode 100644 index 000000000000..2cc984265465 --- /dev/null +++ b/spring-core/src/main/resources/dependencyinjections-context.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 1c53d9e0a508e1ef53a2eb0bb0968bdacc3f9e75 Mon Sep 17 00:00:00 2001 From: Khoteeswarun Gangadharan NCS Date: Thu, 25 Jan 2018 11:56:51 +0800 Subject: [PATCH 2/2] Spring Dependency Injection Types - Updated --- .../AboutuspageService.java | 11 ----- .../dependencyinjections/AppConfig.java | 23 +++++++++++ .../dependencyinjections/Website.java | 11 ++--- ...WebsiteControllerConstructorInjection.java | 11 +---- .../WebsiteControllerSetterInjection.java | 13 +----- .../dependencyinjections-context.xml | 4 -- .../dependencyinjections/WebsiteTest.java | 41 +++++++++++++++++++ 7 files changed, 73 insertions(+), 41 deletions(-) delete mode 100644 spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java create mode 100644 spring-core/src/main/java/com/baeldung/dependencyinjections/AppConfig.java create mode 100644 spring-core/src/test/java/com/baeldung/dependencyinjections/WebsiteTest.java diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java deleted file mode 100644 index f8ceb9e14fc1..000000000000 --- a/spring-core/src/main/java/com/baeldung/dependencyinjections/AboutuspageService.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.baeldung.dependencyinjections; - -import org.springframework.stereotype.Service; - -@Service -public class AboutuspageService { - - public String getContents() { - return "Aboutus page contents"; - } -} diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/AppConfig.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/AppConfig.java new file mode 100644 index 000000000000..54234cb21d68 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/AppConfig.java @@ -0,0 +1,23 @@ +package com.baeldung.dependencyinjections; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class AppConfig { + + @Bean + public WebsiteControllerConstructorInjection websiteControllerConstructorInjection() { + return new WebsiteControllerConstructorInjection(homepageService()); + } + + @Bean + public HomepageService homepageService() { + return new HomepageService(); + } + + @Bean + public WebsiteControllerSetterInjection websiteControllerSetterInjection() { + return new WebsiteControllerSetterInjection(); + } +} diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java index 9a627a04d91d..bf6eb945fd87 100644 --- a/spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/Website.java @@ -1,18 +1,19 @@ package com.baeldung.dependencyinjections; import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Website { @SuppressWarnings("resource") public static void main(String[] args) { - ApplicationContext context = new ClassPathXmlApplicationContext("dependencyinjections-context.xml"); - WebsiteControllerConstructorInjection controller = (WebsiteControllerConstructorInjection) context.getBean("websiteControllerConstructorInjection"); - System.out.println("The contents of the Website are : " + controller.getContentsViaConstructorInjection()); + ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); + + WebsiteControllerConstructorInjection controller = context.getBean(WebsiteControllerConstructorInjection.class); + System.out.println("The contents of the Website includes : " + controller.getContentsViaConstructorInjection()); WebsiteControllerSetterInjection controllerwithSetterInjection = (WebsiteControllerSetterInjection) context.getBean("websiteControllerSetterInjection"); - System.out.println("The contents of the Website are : " + controllerwithSetterInjection.getContentsViaSetterInjection()); + System.out.println("The contents of the Website includes : " + controllerwithSetterInjection.getContentsViaSetterInjection()); } } diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java index 93de5dc6e56e..1bfeccb151f3 100644 --- a/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerConstructorInjection.java @@ -8,20 +8,13 @@ public class WebsiteControllerConstructorInjection { private HomepageService homeService; - private AboutuspageService aboutusService; - @Autowired - public WebsiteControllerConstructorInjection(HomepageService homeService, AboutuspageService aboutusService) { + public WebsiteControllerConstructorInjection(HomepageService homeService) { this.homeService = homeService; - this.aboutusService = aboutusService; } public String getContentsViaConstructorInjection() { - StringBuffer websiteContents = new StringBuffer(); - websiteContents.append(homeService.getContents()); - websiteContents.append(" and "); - websiteContents.append(aboutusService.getContents()); - return websiteContents.toString(); + return homeService.getContents(); } } diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java index 3f2f356145d6..ac4e93f0cdac 100644 --- a/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java +++ b/spring-core/src/main/java/com/baeldung/dependencyinjections/WebsiteControllerSetterInjection.java @@ -8,23 +8,12 @@ public class WebsiteControllerSetterInjection { private HomepageService homeService; - private AboutuspageService aboutusService; - @Autowired public void setHomepageService(HomepageService homeService) { this.homeService = homeService; } - @Autowired - public void setAboutuspageService(AboutuspageService aboutusService) { - this.aboutusService = aboutusService; - } - public String getContentsViaSetterInjection() { - StringBuffer websiteContents = new StringBuffer(); - websiteContents.append(homeService.getContents()); - websiteContents.append(" and "); - websiteContents.append(aboutusService.getContents()); - return websiteContents.toString(); + return homeService.getContents(); } } diff --git a/spring-core/src/main/resources/dependencyinjections-context.xml b/spring-core/src/main/resources/dependencyinjections-context.xml index 2cc984265465..972bf92f439e 100644 --- a/spring-core/src/main/resources/dependencyinjections-context.xml +++ b/spring-core/src/main/resources/dependencyinjections-context.xml @@ -9,13 +9,9 @@ - - - -