From 29452abde43333219fce7d4a229e8c152615b1fd Mon Sep 17 00:00:00 2001 From: Erhan KARAKAYA Date: Sun, 27 Jan 2019 03:27:38 +0300 Subject: [PATCH 1/3] 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); + } +} From 11bce96dc8da2da189f8da0df99ffe8fbe28c37f Mon Sep 17 00:00:00 2001 From: Erhan KARAKAYA Date: Sun, 3 Feb 2019 22:47:10 +0300 Subject: [PATCH 2/3] Removed generic examples --- .../AbstractGenericService.java | 38 ------------------- .../org/baeldung/sampleabstract/DemoApp.java | 4 -- .../sampleabstract/FooGenericService.java | 8 ---- 3 files changed, 50 deletions(-) delete mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/AbstractGenericService.java delete mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.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 deleted file mode 100644 index 88451d5181..0000000000 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractGenericService.java +++ /dev/null @@ -1,38 +0,0 @@ -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/DemoApp.java b/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java index f6e7fd47b5..0c3c4ea083 100644 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java @@ -15,9 +15,6 @@ public class DemoApp { @Autowired private FooService fooService; - @Autowired - private FooGenericService fooGenericService; - public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(DemoApp.class); @@ -27,6 +24,5 @@ public class DemoApp { public void afterInitialize() { fooService.afterInitialize(); - fooGenericService.afterInitialize(); } } diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.java deleted file mode 100644 index 45ad15e33a..0000000000 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/FooGenericService.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.sampleabstract; - -import org.springframework.stereotype.Component; - -@Component -public class FooGenericService extends AbstractGenericService { - -} From 84d83fb8ec138e3a4f8b321a74e7dc64aa89543e Mon Sep 17 00:00:00 2001 From: Erhan KARAKAYA Date: Sun, 10 Mar 2019 21:37:48 +0300 Subject: [PATCH 3/3] Changed class names to make them more memorable --- .../sampleabstract/AbstractService.java | 57 ------------------- .../baeldung/sampleabstract/BallService.java | 28 +++++++++ ...FooService.java => BasketballService.java} | 7 +-- .../org/baeldung/sampleabstract/DemoApp.java | 10 ---- .../org/baeldung/sampleabstract/FooBean.java | 12 ---- .../{BarBean.java => LogRepository.java} | 8 +-- .../{FooBarBean.java => RuleRepository.java} | 8 +-- 7 files changed, 39 insertions(+), 91 deletions(-) delete mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java create mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/BallService.java rename spring-all/src/main/java/org/baeldung/sampleabstract/{FooService.java => BasketballService.java} (56%) delete mode 100644 spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java rename spring-all/src/main/java/org/baeldung/sampleabstract/{BarBean.java => LogRepository.java} (50%) rename spring-all/src/main/java/org/baeldung/sampleabstract/{FooBarBean.java => RuleRepository.java} (50%) diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java deleted file mode 100644 index 51882f20b3..0000000000 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/AbstractService.java +++ /dev/null @@ -1,57 +0,0 @@ -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/BallService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/BallService.java new file mode 100644 index 0000000000..9a75de7fa1 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/BallService.java @@ -0,0 +1,28 @@ +package org.baeldung.sampleabstract; + +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.PostConstruct; + +public abstract class BallService { + + private RuleRepository ruleRepository; + + private LogRepository logRepository; + + public BallService(RuleRepository ruleRepository) { + this.ruleRepository = ruleRepository; + } + + @Autowired + public final void setLogRepository(LogRepository logRepository) { + this.logRepository = logRepository; + } + + @PostConstruct + public void afterInitialize() { + + System.out.println(ruleRepository.toString()); + System.out.println(logRepository.toString()); + } +} diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooService.java b/spring-all/src/main/java/org/baeldung/sampleabstract/BasketballService.java similarity index 56% rename from spring-all/src/main/java/org/baeldung/sampleabstract/FooService.java rename to spring-all/src/main/java/org/baeldung/sampleabstract/BasketballService.java index 8bc625e098..c117231d3c 100644 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/FooService.java +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/BasketballService.java @@ -4,11 +4,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component -public class FooService extends AbstractService { +public class BasketballService extends BallService { @Autowired - public FooService(FooBarBean fooBarBean) { - - super(fooBarBean); + public BasketballService(RuleRepository ruleRepository) { + super(ruleRepository); } } diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java b/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java index 0c3c4ea083..615d354ecf 100644 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/DemoApp.java @@ -1,28 +1,18 @@ 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; public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(DemoApp.class); } - @PostConstruct - public void afterInitialize() { - - fooService.afterInitialize(); - } } diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java b/spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java deleted file mode 100644 index 5ef623b5af..0000000000 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/FooBean.java +++ /dev/null @@ -1,12 +0,0 @@ -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/BarBean.java b/spring-all/src/main/java/org/baeldung/sampleabstract/LogRepository.java similarity index 50% rename from spring-all/src/main/java/org/baeldung/sampleabstract/BarBean.java rename to spring-all/src/main/java/org/baeldung/sampleabstract/LogRepository.java index 8aeb5d2001..3a65671493 100644 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/BarBean.java +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/LogRepository.java @@ -3,10 +3,10 @@ package org.baeldung.sampleabstract; import org.springframework.stereotype.Component; @Component -public class BarBean { +public class LogRepository { - public String value() { - - return "barBean"; + @Override + public String toString() { + return "logRepository"; } } diff --git a/spring-all/src/main/java/org/baeldung/sampleabstract/FooBarBean.java b/spring-all/src/main/java/org/baeldung/sampleabstract/RuleRepository.java similarity index 50% rename from spring-all/src/main/java/org/baeldung/sampleabstract/FooBarBean.java rename to spring-all/src/main/java/org/baeldung/sampleabstract/RuleRepository.java index 0f46518a41..fd42178ab6 100644 --- a/spring-all/src/main/java/org/baeldung/sampleabstract/FooBarBean.java +++ b/spring-all/src/main/java/org/baeldung/sampleabstract/RuleRepository.java @@ -3,10 +3,10 @@ package org.baeldung.sampleabstract; import org.springframework.stereotype.Component; @Component -public class FooBarBean { +public class RuleRepository { - public String value() { - - return "fooBarBean"; + @Override + public String toString() { + return "ruleRepository"; } }