From 29452abde43333219fce7d4a229e8c152615b1fd Mon Sep 17 00:00:00 2001 From: Erhan KARAKAYA Date: Sun, 27 Jan 2019 03:27:38 +0300 Subject: [PATCH] Added tutorial sample for BAEL-2550 --- .../AbstractGenericService.java | 38 +++++++++++++ .../sampleabstract/AbstractService.java | 57 +++++++++++++++++++ .../org/baeldung/sampleabstract/BarBean.java | 12 ++++ .../org/baeldung/sampleabstract/DemoApp.java | 32 +++++++++++ .../baeldung/sampleabstract/FooBarBean.java | 12 ++++ .../org/baeldung/sampleabstract/FooBean.java | 12 ++++ .../sampleabstract/FooGenericService.java | 8 +++ .../baeldung/sampleabstract/FooService.java | 14 +++++ 8 files changed, 185 insertions(+) create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/AbstractGenericService.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/BarBean.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/FooBarBean.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/FooService.java diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractGenericService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractGenericService.java new file mode 100644 index 0000000000..88451d5181 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractGenericService.java @@ -0,0 +1,38 @@ +package org.baeldung.sampleabstract; + +import org.springframework.beans.factory.annotation.Autowired; + +public abstract class AbstractGenericService { + + @Autowired + private T genericFieldT; + + private S genericFieldS; + + public T getGenericFieldT() { + + return genericFieldT; + } + + public void setGenericFieldT(T genericFieldT) { + + this.genericFieldT = genericFieldT; + } + + public S getGenericFieldS() { + + return genericFieldS; + } + + @Autowired + public void setGenericFieldS(S genericFieldS) { + + this.genericFieldS = genericFieldS; + } + + public void afterInitialize() { + + System.out.println(genericFieldT.getClass().getSimpleName()); + System.out.println(genericFieldS.getClass().getSimpleName()); + } +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java new file mode 100644 index 0000000000..51882f20b3 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java @@ -0,0 +1,57 @@ +package org.baeldung.sampleabstract; + +import org.springframework.beans.factory.annotation.Autowired; + + +public abstract class AbstractService { + + @Autowired + private FooBean fooBean; + + private BarBean barBean; + + private FooBarBean fooBarBean; + + public AbstractService(FooBarBean fooBarBean) { + + this.fooBarBean = fooBarBean; + } + + public FooBean getFooBean() { + + return fooBean; + } + + public void setFooBean(FooBean fooBean) { + + this.fooBean = fooBean; + } + + public BarBean getBarBean() { + + return barBean; + } + + @Autowired + public void setBarBean(BarBean barBean) { + + this.barBean = barBean; + } + + public FooBarBean getFooBarBean() { + + return fooBarBean; + } + + public void setFooBarBean(FooBarBean fooBarBean) { + + this.fooBarBean = fooBarBean; + } + + public void afterInitialize() { + + System.out.println(fooBean.value()); + System.out.println(barBean.value()); + System.out.println(fooBarBean.value()); + } +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/BarBean.java b/spring-all/src/main/java/org/baeldung/sampleabstract/BarBean.java new file mode 100644 index 0000000000..8aeb5d2001 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/BarBean.java @@ -0,0 +1,12 @@ +package org.baeldung.sampleabstract; + +import org.springframework.stereotype.Component; + +@Component +public class BarBean { + + public String value() { + + return "barBean"; + } +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java b/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java new file mode 100644 index 0000000000..f6e7fd47b5 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java @@ -0,0 +1,32 @@ +package org.baeldung.sampleabstract; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.PostConstruct; + +@Configuration +@ComponentScan(basePackages = "org.baeldung.sampleabstract") +public class DemoApp { + + @Autowired + private FooService fooService; + + @Autowired + private FooGenericService fooGenericService; + + public static void main(String[] args) { + + ApplicationContext applicationContext = new AnnotationConfigApplicationContext(DemoApp.class); + } + + @PostConstruct + public void afterInitialize() { + + fooService.afterInitialize(); + fooGenericService.afterInitialize(); + } +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooBarBean.java b/spring-all/src/main/java/org/baeldung/sampleabstract/FooBarBean.java new file mode 100644 index 0000000000..0f46518a41 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/FooBarBean.java @@ -0,0 +1,12 @@ +package org.baeldung.sampleabstract; + +import org.springframework.stereotype.Component; + +@Component +public class FooBarBean { + + public String value() { + + return "fooBarBean"; + } +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java b/spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java new file mode 100644 index 0000000000..5ef623b5af --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java @@ -0,0 +1,12 @@ +package org.baeldung.sampleabstract; + +import org.springframework.stereotype.Component; + +@Component +public class FooBean { + + public String value() { + + return "fooBean"; + } +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.java new file mode 100644 index 0000000000..45ad15e33a --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.java @@ -0,0 +1,8 @@ +package org.baeldung.sampleabstract; + +import org.springframework.stereotype.Component; + +@Component +public class FooGenericService extends AbstractGenericService { + +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/FooService.java new file mode 100644 index 0000000000..8bc625e098 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/FooService.java @@ -0,0 +1,14 @@ +package org.baeldung.sampleabstract; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class FooService extends AbstractService { + + @Autowired + public FooService(FooBarBean fooBarBean) { + + super(fooBarBean); + } +}