diff --git a/src/main/java/guru/springframework/spring6di/Spring6DiApplication.java b/src/main/java/guru/springframework/spring6di/Spring6DiApplication.java index e6eb0c0f..d9e98e05 100644 --- a/src/main/java/guru/springframework/spring6di/Spring6DiApplication.java +++ b/src/main/java/guru/springframework/spring6di/Spring6DiApplication.java @@ -1,5 +1,6 @@ package guru.springframework.spring6di; +import guru.springframework.spring6di.controllers.MyController; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -7,7 +8,13 @@ public class Spring6DiApplication { public static void main(String[] args) { - SpringApplication.run(Spring6DiApplication.class, args); + final var context = SpringApplication.run(Spring6DiApplication.class, args); + + System.out.println("Hello from the Main"); + + final var myController = context.getBean(MyController.class); + + System.out.println(myController.sayHello()); } } diff --git a/src/main/java/guru/springframework/spring6di/controllers/MyController.java b/src/main/java/guru/springframework/spring6di/controllers/MyController.java new file mode 100644 index 00000000..f0deabc1 --- /dev/null +++ b/src/main/java/guru/springframework/spring6di/controllers/MyController.java @@ -0,0 +1,21 @@ +package guru.springframework.spring6di.controllers; + +import guru.springframework.spring6di.services.GreetingsService; +import guru.springframework.spring6di.services.impl.GreetingsServiceImpl; +import org.springframework.stereotype.Controller; + +@Controller +public class MyController { + + private final GreetingsService greetingsService; + + public MyController() { + this.greetingsService = new GreetingsServiceImpl() {}; + } + + public String sayHello() { + System.out.println("I'm the MyController!!"); + + return this.greetingsService.sayHello(); + } +} diff --git a/src/main/java/guru/springframework/spring6di/services/GreetingsService.java b/src/main/java/guru/springframework/spring6di/services/GreetingsService.java new file mode 100644 index 00000000..94ff1f63 --- /dev/null +++ b/src/main/java/guru/springframework/spring6di/services/GreetingsService.java @@ -0,0 +1,6 @@ +package guru.springframework.spring6di.services; + +public interface GreetingsService { + + String sayHello(); +} diff --git a/src/main/java/guru/springframework/spring6di/services/impl/GreetingsServiceImpl.java b/src/main/java/guru/springframework/spring6di/services/impl/GreetingsServiceImpl.java new file mode 100644 index 00000000..b20720da --- /dev/null +++ b/src/main/java/guru/springframework/spring6di/services/impl/GreetingsServiceImpl.java @@ -0,0 +1,10 @@ +package guru.springframework.spring6di.services.impl; + +import guru.springframework.spring6di.services.GreetingsService; + +public class GreetingsServiceImpl implements GreetingsService { + @Override + public String sayHello() { + return "Hello from the Greetings Service"; + } +} diff --git a/src/test/java/guru/springframework/spring6di/Spring6DiApplicationTests.java b/src/test/java/guru/springframework/spring6di/Spring6DiApplicationTests.java index 1849dcc9..707f5c63 100644 --- a/src/test/java/guru/springframework/spring6di/Spring6DiApplicationTests.java +++ b/src/test/java/guru/springframework/spring6di/Spring6DiApplicationTests.java @@ -1,11 +1,31 @@ package guru.springframework.spring6di; +import guru.springframework.spring6di.controllers.MyController; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContext; @SpringBootTest class Spring6DiApplicationTests { + + @Autowired + private ApplicationContext context; + + @Autowired + private MyController myController; + + @Test + void myControllerAutowired() { + System.out.println(this.myController.sayHello()); + } + @Test + void applicationContextAutowired() { + final var controller = this.context.getBean(MyController.class); + System.out.println(controller.sayHello()); + } + @Test void contextLoads() { } diff --git a/src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java b/src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java new file mode 100644 index 00000000..bc5eb621 --- /dev/null +++ b/src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java @@ -0,0 +1,15 @@ +package guru.springframework.spring6di.controllers; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class MyControllerTest { + + @Test + void sayHello() { + final var myController = new MyController(); + + System.out.println(myController.sayHello()); + } +} \ No newline at end of file