diff --git a/src/main/java/guru/springframework/spring6di/controllers/ConstructorInjectedController.java b/src/main/java/guru/springframework/spring6di/controllers/ConstructorInjectedController.java new file mode 100644 index 00000000..b2f92bd8 --- /dev/null +++ b/src/main/java/guru/springframework/spring6di/controllers/ConstructorInjectedController.java @@ -0,0 +1,18 @@ +package guru.springframework.spring6di.controllers; + +import guru.springframework.spring6di.services.GreetingService; + +/** + * Created by jt, Spring Framework Guru. + */ +public class ConstructorInjectedController { + private final GreetingService greetingService; + + public ConstructorInjectedController(GreetingService greetingService) { + this.greetingService = greetingService; + } + + public String sayHello(){ + return greetingService.sayGreeting(); + } +} diff --git a/src/main/java/guru/springframework/spring6di/controllers/MyController.java b/src/main/java/guru/springframework/spring6di/controllers/MyController.java index 3dbc9f6e..a0e52249 100644 --- a/src/main/java/guru/springframework/spring6di/controllers/MyController.java +++ b/src/main/java/guru/springframework/spring6di/controllers/MyController.java @@ -7,6 +7,8 @@ /** * Created by jt, Spring Framework Guru. */ + +/* conventional way without dependency injection */ @Controller public class MyController { diff --git a/src/main/java/guru/springframework/spring6di/controllers/PropertyInjectedController.java b/src/main/java/guru/springframework/spring6di/controllers/PropertyInjectedController.java new file mode 100644 index 00000000..db70ae7e --- /dev/null +++ b/src/main/java/guru/springframework/spring6di/controllers/PropertyInjectedController.java @@ -0,0 +1,16 @@ +package guru.springframework.spring6di.controllers; + +import guru.springframework.spring6di.services.GreetingService; + +/** + * Created by jt, Spring Framework Guru. + */ +public class PropertyInjectedController { + + GreetingService greetingService; + + public String sayHello(){ + return greetingService.sayGreeting(); + } + +} diff --git a/src/main/java/guru/springframework/spring6di/controllers/SetterInjectedController.java b/src/main/java/guru/springframework/spring6di/controllers/SetterInjectedController.java new file mode 100644 index 00000000..32358d4b --- /dev/null +++ b/src/main/java/guru/springframework/spring6di/controllers/SetterInjectedController.java @@ -0,0 +1,18 @@ +package guru.springframework.spring6di.controllers; + +import guru.springframework.spring6di.services.GreetingService; + +/** + * Created by jt, Spring Framework Guru. + */ +public class SetterInjectedController { + private GreetingService greetingService; + + public void setGreetingService(GreetingService greetingService) { + this.greetingService = greetingService; + } + + public String sayHello(){ + return greetingService.sayGreeting(); + } +} diff --git a/src/test/java/guru/springframework/spring6di/controllers/ConstructorInjectedControllerTest.java b/src/test/java/guru/springframework/spring6di/controllers/ConstructorInjectedControllerTest.java new file mode 100644 index 00000000..b665fd30 --- /dev/null +++ b/src/test/java/guru/springframework/spring6di/controllers/ConstructorInjectedControllerTest.java @@ -0,0 +1,23 @@ +package guru.springframework.spring6di.controllers; + +import guru.springframework.spring6di.services.GreetingServiceImpl; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ConstructorInjectedControllerTest { + + ConstructorInjectedController controller; + + @BeforeEach + void setUp() { + controller = new ConstructorInjectedController(new GreetingServiceImpl()); + } + + @Test + void sayHello() { + System.out.println(controller.sayHello()); + + } +} \ No newline at end of file diff --git a/src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java b/src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java index b4e80c2c..59ae75c9 100644 --- a/src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java +++ b/src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java @@ -9,9 +9,6 @@ class MyControllerTest { @Test void sayHello() { MyController myController = new MyController(); - System.out.println(myController.sayHello()); - - } } \ No newline at end of file diff --git a/src/test/java/guru/springframework/spring6di/controllers/PropertyInjectedControllerTest.java b/src/test/java/guru/springframework/spring6di/controllers/PropertyInjectedControllerTest.java new file mode 100644 index 00000000..523e090d --- /dev/null +++ b/src/test/java/guru/springframework/spring6di/controllers/PropertyInjectedControllerTest.java @@ -0,0 +1,25 @@ +package guru.springframework.spring6di.controllers; + +import guru.springframework.spring6di.services.GreetingServiceImpl; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class PropertyInjectedControllerTest { + + PropertyInjectedController propertyInjectedController; + + @BeforeEach + void setUp() { + + propertyInjectedController = new PropertyInjectedController(); + propertyInjectedController.greetingService = new GreetingServiceImpl(); + } + + @Test + void sayHello() { + System.out.println(propertyInjectedController.sayHello()); + + } +} \ No newline at end of file diff --git a/src/test/java/guru/springframework/spring6di/controllers/SetterInjectedControllerTest.java b/src/test/java/guru/springframework/spring6di/controllers/SetterInjectedControllerTest.java new file mode 100644 index 00000000..b863ad22 --- /dev/null +++ b/src/test/java/guru/springframework/spring6di/controllers/SetterInjectedControllerTest.java @@ -0,0 +1,24 @@ +package guru.springframework.spring6di.controllers; + +import guru.springframework.spring6di.services.GreetingServiceImpl; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class SetterInjectedControllerTest { + + SetterInjectedController setterInjectedController; + + @BeforeEach + void setUp() { + setterInjectedController = new SetterInjectedController(); + setterInjectedController.setGreetingService(new GreetingServiceImpl()); + + } + + @Test + void sayHello() { + System.out.println(setterInjectedController.sayHello()); + } +} \ No newline at end of file