From 2ce302a368cfc546d2ee6b2d35463988c1d10d55 Mon Sep 17 00:00:00 2001 From: szlishchev Date: Wed, 24 Apr 2024 08:25:47 +0300 Subject: [PATCH 1/3] Spring Context --- .../spring6di/Spring6DiApplication.java | 9 ++++++++- .../spring6di/controllers/MyController.java | 13 +++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/main/java/guru/springframework/spring6di/controllers/MyController.java 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..feac824d --- /dev/null +++ b/src/main/java/guru/springframework/spring6di/controllers/MyController.java @@ -0,0 +1,13 @@ +package guru.springframework.spring6di.controllers; + +import org.springframework.stereotype.Controller; + +@Controller +public class MyController { + + public String sayHello() { + System.out.println("I'm the MyController!!"); + + return "Hello world!!!"; + } +} From 08f18e9fea06d73515ebe328f90fdada808ee73c Mon Sep 17 00:00:00 2001 From: szlishchev Date: Wed, 24 Apr 2024 08:54:06 +0300 Subject: [PATCH 2/3] Spring Context Test --- .../spring6di/Spring6DiApplicationTests.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) 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() { } From 7ffdd144c024344062b9db7ecb8fbe05d416a26e Mon Sep 17 00:00:00 2001 From: szlishchev Date: Wed, 24 Apr 2024 09:16:46 +0300 Subject: [PATCH 3/3] Dependencies without Spring --- .../spring6di/controllers/MyController.java | 10 +++++++++- .../spring6di/services/GreetingsService.java | 6 ++++++ .../services/impl/GreetingsServiceImpl.java | 10 ++++++++++ .../spring6di/controllers/MyControllerTest.java | 15 +++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 src/main/java/guru/springframework/spring6di/services/GreetingsService.java create mode 100644 src/main/java/guru/springframework/spring6di/services/impl/GreetingsServiceImpl.java create mode 100644 src/test/java/guru/springframework/spring6di/controllers/MyControllerTest.java diff --git a/src/main/java/guru/springframework/spring6di/controllers/MyController.java b/src/main/java/guru/springframework/spring6di/controllers/MyController.java index feac824d..f0deabc1 100644 --- a/src/main/java/guru/springframework/spring6di/controllers/MyController.java +++ b/src/main/java/guru/springframework/spring6di/controllers/MyController.java @@ -1,13 +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 "Hello world!!!"; + 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/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