diff --git a/pom.xml b/pom.xml
index e2c6a36b..f420f63b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,14 +14,14 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.0.M1
+ 2.1.0.RELEASE
UTF-8
UTF-8
- 1.8
+ 11
@@ -46,43 +46,7 @@
-
-
- spring-snapshots
- Spring Snapshots
- https://repo.spring.io/snapshot
-
- true
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/milestone
-
- false
-
-
-
-
-
- spring-snapshots
- Spring Snapshots
- https://repo.spring.io/snapshot
-
- true
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/milestone
-
- false
-
-
-
diff --git a/src/main/java/guru/springframework/DiDemoApplication.java b/src/main/java/guru/springframework/DiDemoApplication.java
index 9e42add3..002501b7 100644
--- a/src/main/java/guru/springframework/DiDemoApplication.java
+++ b/src/main/java/guru/springframework/DiDemoApplication.java
@@ -1,12 +1,59 @@
package guru.springframework;
+import guru.springframework.controllers.GreetingFactoryController;
+import guru.springframework.controllers.MyController;
+import guru.springframework.controllers.PropertyInjectedController;
+import guru.springframework.controllers.SetterInjectedController;
+import guru.springframework.examplebeans.FakeDataSource;
+import guru.springframework.examplebeans.FakeJmsBroker;
+import guru.springframework.scope.PrototypeBean;
+import guru.springframework.scope.SingletonBean;
+import guru.springframework.services.GreetingService;
+import guru.springframework.services.GreetingServiceFactory;
+import guru.springframework.services.GreetingServiceImpl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class DiDemoApplication {
public static void main(String[] args) {
- SpringApplication.run(DiDemoApplication.class, args);
+ ApplicationContext ctx = SpringApplication.run(DiDemoApplication.class, args);
+
+ MyController controller = (MyController) ctx.getBean("myController");
+ //System.out.println(controller.hello());
+ FakeDataSource fakeDataSource = (FakeDataSource) ctx.getBean(FakeDataSource.class);
+
+ //System.out.println(fakeDataSource.getUser());
+
+ FakeJmsBroker fakeJmsBroker = (FakeJmsBroker) ctx.getBean(FakeJmsBroker.class);
+ //System.out.println(fakeJmsBroker.getUsername());
+
+ System.out.println("property injection:");
+ PropertyInjectedController propertyInjectedController=(PropertyInjectedController) ctx.getBean("propertyInjectedController");
+ System.out.println(propertyInjectedController.sayHello());
+
+ SetterInjectedController setterInjectedController = (SetterInjectedController) ctx.getBean("setterInjectedController");
+ System.out.println(setterInjectedController.sayHello());
+
+ GreetingFactoryController greetingFactoryController=(GreetingFactoryController) ctx.getBean("greetingFactoryController");
+ System.out.println(greetingFactoryController.sayHello());
+
+ System.out.println("dependecy injection :");
+ GreetingService greetingService=(GreetingServiceImpl) ctx.getBean("basePrimaryGreetingService");
+ System.out.println(greetingService.sayGreeting());
+
+ System.out.println("///SCOPE");
+ SingletonBean singletonBean1=ctx.getBean(SingletonBean.class);
+ System.out.println(singletonBean1.getMyScope());
+ SingletonBean singletonBean2=ctx.getBean(SingletonBean.class);
+ System.out.println(singletonBean2.getMyScope());
+
+ PrototypeBean prototypeBean1=ctx.getBean(PrototypeBean.class);
+ System.out.println(prototypeBean1.getMyScope());
+ PrototypeBean prototypeBean2=ctx.getBean(PrototypeBean.class);
+ System.out.println(prototypeBean2.getMyScope());
+
}
}
diff --git a/src/main/java/guru/springframework/config/GreetingServiceConfig.java b/src/main/java/guru/springframework/config/GreetingServiceConfig.java
new file mode 100644
index 00000000..b8066076
--- /dev/null
+++ b/src/main/java/guru/springframework/config/GreetingServiceConfig.java
@@ -0,0 +1,54 @@
+package guru.springframework.config;
+
+import guru.springframework.repository.GreetingRepository;
+import guru.springframework.services.GreetingService;
+import guru.springframework.services.GreetingServiceFactory;
+import guru.springframework.services.GreetingServiceImpl;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Profile;
+
+@Configuration
+public class GreetingServiceConfig {
+ /**
+ * Her bir dile ait greeting service'leri burada ayağa kaldırıyorum.
+ * Bunun için önce bir service factory sınıfından bean yaratıyorum.
+ * daha sonra bu bean'in createService methodu ile her dile uygun bir service yaratıyorum.
+ * @param repository
+ * @return
+ */
+
+ @Bean
+ GreetingServiceFactory greetingServiceFactory(GreetingRepository repository){
+ System.out.println("this repo works");
+ return new GreetingServiceFactory(repository);
+ }
+
+ @Bean
+ @Primary
+ @Profile({"default", "en"})
+ GreetingService primaryGreetingService(GreetingServiceFactory greetingServiceFactory){
+ return greetingServiceFactory.createGreetingService("en");
+ }
+
+ @Bean
+ @Primary
+ @Profile("es")
+ GreetingService primarySpanishGreetingService(GreetingServiceFactory greetingServiceFactory){
+ return greetingServiceFactory.createGreetingService("es");
+ }
+
+ @Bean
+ @Primary
+ @Profile("de")
+ GreetingService primaryGermanGreetingService(GreetingServiceFactory greetingServiceFactory){
+ return greetingServiceFactory.createGreetingService("de");
+ }
+
+ //repoyu kendisi bağlıyor annotation ile
+ @Bean(name = "basePrimaryGreetingService")
+ GreetingService basePrimaryGreetingService(GreetingRepository repository){
+ return new GreetingServiceImpl(repository);
+ }
+}
diff --git a/src/main/java/guru/springframework/config/PropertyConfig.java b/src/main/java/guru/springframework/config/PropertyConfig.java
new file mode 100644
index 00000000..1a62625b
--- /dev/null
+++ b/src/main/java/guru/springframework/config/PropertyConfig.java
@@ -0,0 +1,63 @@
+package guru.springframework.config;
+
+import guru.springframework.examplebeans.FakeDataSource;
+import guru.springframework.examplebeans.FakeJmsBroker;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
+import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
+import org.springframework.core.env.Environment;
+
+@Configuration
+//@PropertySource({"classpath:datasource.properties", "classpath:jms.properties"})
+public class PropertyConfig {
+
+
+ @Value("${guru.username}")
+ String user;
+
+ @Value("${guru.password}")
+ String password;
+
+ @Value("${guru.dburl}")
+ String url;
+
+ @Value("${guru.jms.username}")
+ String jmsUsername;
+
+ @Value("${guru.jms.password}")
+ String jmsPassoword;
+
+ @Value("${guru.jms.url}")
+ String jmsUrl;
+
+ @Bean
+ public FakeDataSource fakeDataSource(){
+ FakeDataSource fakeDataSource = new FakeDataSource();
+ fakeDataSource.setUser(user);
+ fakeDataSource.setPassword(password);
+ fakeDataSource.setUrl(url);
+ return fakeDataSource;
+ }
+
+ @Bean
+ public FakeJmsBroker fakeJmsBroker(){
+ FakeJmsBroker jmsBroker = new FakeJmsBroker();
+ jmsBroker.setUsername(jmsUsername);
+ jmsBroker.setPassword(jmsPassoword);
+ jmsBroker.setUrl(jmsUrl);
+ return jmsBroker;
+ }
+
+ /*
+ @Bean
+ public static PropertySourcesPlaceholderConfigurer properties(){
+ PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer =new PropertySourcesPlaceholderConfigurer();
+ return propertySourcesPlaceholderConfigurer;
+ }
+
+ */
+}
diff --git a/src/main/java/guru/springframework/controllers/ConstructorInjectedController.java b/src/main/java/guru/springframework/controllers/ConstructorInjectedController.java
new file mode 100644
index 00000000..2f1b4b53
--- /dev/null
+++ b/src/main/java/guru/springframework/controllers/ConstructorInjectedController.java
@@ -0,0 +1,19 @@
+package guru.springframework.controllers;
+
+import guru.springframework.services.GreetingService;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class ConstructorInjectedController {
+
+ private GreetingService greetingService;
+
+ public ConstructorInjectedController(@Qualifier("constructorGreetingService") GreetingService greetingService) {
+ this.greetingService = greetingService;
+ }
+
+ public String sayHello(){
+ return greetingService.sayGreeting();
+ }
+}
diff --git a/src/main/java/guru/springframework/controllers/GreetingFactoryController.java b/src/main/java/guru/springframework/controllers/GreetingFactoryController.java
new file mode 100644
index 00000000..de1c1167
--- /dev/null
+++ b/src/main/java/guru/springframework/controllers/GreetingFactoryController.java
@@ -0,0 +1,19 @@
+package guru.springframework.controllers;
+
+import guru.springframework.services.GreetingService;
+import guru.springframework.services.GreetingServiceFactory;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class GreetingFactoryController {
+
+ private final GreetingService greetingService;
+
+ public GreetingFactoryController(GreetingService greetingService) {
+ this.greetingService = greetingService;
+ }
+
+ public String sayHello(){
+ return greetingService.sayGreeting();
+ }
+}
diff --git a/src/main/java/guru/springframework/controllers/MyController.java b/src/main/java/guru/springframework/controllers/MyController.java
new file mode 100644
index 00000000..b574991d
--- /dev/null
+++ b/src/main/java/guru/springframework/controllers/MyController.java
@@ -0,0 +1,20 @@
+package guru.springframework.controllers;
+
+import guru.springframework.services.GreetingService;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class MyController {
+
+ private GreetingService greetingService;
+
+ public MyController(GreetingService greetingService) {
+ this.greetingService = greetingService;
+ }
+
+ public String hello(){
+ System.out.println("Hello!!! ");
+
+ return greetingService.sayGreeting();
+ }
+}
diff --git a/src/main/java/guru/springframework/controllers/PropertyInjectedController.java b/src/main/java/guru/springframework/controllers/PropertyInjectedController.java
new file mode 100644
index 00000000..ed247297
--- /dev/null
+++ b/src/main/java/guru/springframework/controllers/PropertyInjectedController.java
@@ -0,0 +1,20 @@
+package guru.springframework.controllers;
+
+import guru.springframework.services.GreetingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+
+
+@Controller
+public class PropertyInjectedController {
+
+ @Autowired
+ @Qualifier("basePrimaryGreetingService")
+ public GreetingService greetingServiceImpl;
+
+ public String sayHello(){
+ return greetingServiceImpl.sayGreeting();
+ }
+
+}
diff --git a/src/main/java/guru/springframework/controllers/SetterInjectedController.java b/src/main/java/guru/springframework/controllers/SetterInjectedController.java
new file mode 100644
index 00000000..2ddf358b
--- /dev/null
+++ b/src/main/java/guru/springframework/controllers/SetterInjectedController.java
@@ -0,0 +1,20 @@
+package guru.springframework.controllers;
+
+import guru.springframework.services.GreetingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class SetterInjectedController {
+ private GreetingService greetingService;
+
+ public String sayHello(){
+ return greetingService.sayGreeting();
+ }
+
+ @Autowired
+ public void setGreetingService(@Qualifier("setterGreetingService") GreetingService greetingService) {
+ this.greetingService = greetingService;
+ }
+}
diff --git a/src/main/java/guru/springframework/examplebeans/FakeDataSource.java b/src/main/java/guru/springframework/examplebeans/FakeDataSource.java
new file mode 100644
index 00000000..d0223825
--- /dev/null
+++ b/src/main/java/guru/springframework/examplebeans/FakeDataSource.java
@@ -0,0 +1,31 @@
+package guru.springframework.examplebeans;
+
+public class FakeDataSource {
+ private String user;
+ private String password;
+ private String url;
+
+ public String getUser() {
+ return user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+}
diff --git a/src/main/java/guru/springframework/examplebeans/FakeJmsBroker.java b/src/main/java/guru/springframework/examplebeans/FakeJmsBroker.java
new file mode 100644
index 00000000..8a2f4a32
--- /dev/null
+++ b/src/main/java/guru/springframework/examplebeans/FakeJmsBroker.java
@@ -0,0 +1,32 @@
+package guru.springframework.examplebeans;
+
+public class FakeJmsBroker {
+
+ private String username;
+ private String password;
+ private String url;
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+}
diff --git a/src/main/java/guru/springframework/repository/GreetingRepository.java b/src/main/java/guru/springframework/repository/GreetingRepository.java
new file mode 100644
index 00000000..3250b168
--- /dev/null
+++ b/src/main/java/guru/springframework/repository/GreetingRepository.java
@@ -0,0 +1,12 @@
+package guru.springframework.repository;
+
+public interface GreetingRepository {
+
+ String getEnglishGreeting();
+
+ String getSpanishGreeting();
+
+ String getGermanGreeting();
+
+ String getBaseGreeting();
+}
diff --git a/src/main/java/guru/springframework/repository/GreetingRepositoryImpl.java b/src/main/java/guru/springframework/repository/GreetingRepositoryImpl.java
new file mode 100644
index 00000000..3b248064
--- /dev/null
+++ b/src/main/java/guru/springframework/repository/GreetingRepositoryImpl.java
@@ -0,0 +1,31 @@
+package guru.springframework.repository;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class GreetingRepositoryImpl implements GreetingRepository {
+
+ public static final String HELLO_GURUS = "Hello good day";
+
+ @Override
+ public String getEnglishGreeting() {
+ return "Hello - Primary Greeting service";
+ }
+
+ @Override
+ public String getSpanishGreeting() {
+ return "Servicio de Saludo Primario";
+ }
+
+ @Override
+ public String getGermanGreeting() {
+
+ return "Primärer Grußdienst";
+
+ }
+
+ @Override
+ public String getBaseGreeting() {
+ return HELLO_GURUS;
+ }
+}
diff --git a/src/main/java/guru/springframework/scope/PrototypeBean.java b/src/main/java/guru/springframework/scope/PrototypeBean.java
new file mode 100644
index 00000000..593b2a72
--- /dev/null
+++ b/src/main/java/guru/springframework/scope/PrototypeBean.java
@@ -0,0 +1,17 @@
+package guru.springframework.scope;
+
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+@Component
+public class PrototypeBean {
+ public PrototypeBean() {
+ System.out.println("I'm prototype bean");
+ }
+
+ public String getMyScope(){
+ return "this is prototype scope";
+ }
+}
diff --git a/src/main/java/guru/springframework/scope/SingletonBean.java b/src/main/java/guru/springframework/scope/SingletonBean.java
new file mode 100644
index 00000000..a069da1c
--- /dev/null
+++ b/src/main/java/guru/springframework/scope/SingletonBean.java
@@ -0,0 +1,17 @@
+package guru.springframework.scope;
+
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SingletonBean {
+
+ public SingletonBean() {
+ System.out.println("I'm creating singleton bean");
+ }
+
+ public String getMyScope(){
+ return "singleton scope";
+ }
+}
diff --git a/src/main/java/guru/springframework/services/ConstructorGreetingService.java b/src/main/java/guru/springframework/services/ConstructorGreetingService.java
new file mode 100644
index 00000000..e7e7ae70
--- /dev/null
+++ b/src/main/java/guru/springframework/services/ConstructorGreetingService.java
@@ -0,0 +1,11 @@
+package guru.springframework.services;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class ConstructorGreetingService implements GreetingService {
+ @Override
+ public String sayGreeting() {
+ return "Hello - I was injected via the constructor!!!";
+ }
+}
diff --git a/src/main/java/guru/springframework/services/GreetingService.java b/src/main/java/guru/springframework/services/GreetingService.java
new file mode 100644
index 00000000..11c0ed09
--- /dev/null
+++ b/src/main/java/guru/springframework/services/GreetingService.java
@@ -0,0 +1,6 @@
+package guru.springframework.services;
+
+public interface GreetingService {
+
+ String sayGreeting();
+}
diff --git a/src/main/java/guru/springframework/services/GreetingServiceFactory.java b/src/main/java/guru/springframework/services/GreetingServiceFactory.java
new file mode 100644
index 00000000..e6de2219
--- /dev/null
+++ b/src/main/java/guru/springframework/services/GreetingServiceFactory.java
@@ -0,0 +1,27 @@
+package guru.springframework.services;
+
+import guru.springframework.repository.GreetingRepository;
+
+public class GreetingServiceFactory {
+
+ private GreetingRepository greetingRepository;
+
+ public GreetingServiceFactory(GreetingRepository greetingRepository) {
+ this.greetingRepository = greetingRepository;
+ }
+
+ public GreetingService createGreetingService(String lang) {
+
+ switch (lang){
+ case "en":
+ return new PrimaryGreetingService(greetingRepository);
+ case "de":
+ return new PrimaryGermanGreetingService(greetingRepository);
+ case "es":
+ return new PrimarySpanishGreetingService(greetingRepository);
+ default:
+ return new PrimaryGreetingService(greetingRepository);
+ }
+
+ }
+}
diff --git a/src/main/java/guru/springframework/services/GreetingServiceImpl.java b/src/main/java/guru/springframework/services/GreetingServiceImpl.java
new file mode 100644
index 00000000..a123a9f8
--- /dev/null
+++ b/src/main/java/guru/springframework/services/GreetingServiceImpl.java
@@ -0,0 +1,17 @@
+package guru.springframework.services;
+
+import guru.springframework.repository.GreetingRepository;
+
+public class GreetingServiceImpl implements GreetingService {
+
+ private final GreetingRepository repository;
+
+ public GreetingServiceImpl(GreetingRepository repository) {
+ this.repository = repository;
+ }
+
+ @Override
+ public String sayGreeting() {
+ return repository.getBaseGreeting();
+ }
+}
diff --git a/src/main/java/guru/springframework/services/PrimaryGermanGreetingService.java b/src/main/java/guru/springframework/services/PrimaryGermanGreetingService.java
new file mode 100644
index 00000000..6cc08c03
--- /dev/null
+++ b/src/main/java/guru/springframework/services/PrimaryGermanGreetingService.java
@@ -0,0 +1,17 @@
+package guru.springframework.services;
+
+import guru.springframework.repository.GreetingRepository;
+
+public class PrimaryGermanGreetingService implements GreetingService {
+
+ private GreetingRepository greetingRepository;
+
+ public PrimaryGermanGreetingService(GreetingRepository greetingRepository) {
+ this.greetingRepository = greetingRepository;
+ }
+
+ @Override
+ public String sayGreeting() {
+ return greetingRepository.getGermanGreeting();
+ }
+}
diff --git a/src/main/java/guru/springframework/services/PrimaryGreetingService.java b/src/main/java/guru/springframework/services/PrimaryGreetingService.java
new file mode 100644
index 00000000..f5d61343
--- /dev/null
+++ b/src/main/java/guru/springframework/services/PrimaryGreetingService.java
@@ -0,0 +1,18 @@
+package guru.springframework.services;
+
+import guru.springframework.repository.GreetingRepository;
+
+
+public class PrimaryGreetingService implements GreetingService {
+
+ private GreetingRepository greetingRepository;
+
+ public PrimaryGreetingService(GreetingRepository greetingRepository) {
+ this.greetingRepository = greetingRepository;
+ }
+
+ @Override
+ public String sayGreeting() {
+ return greetingRepository.getEnglishGreeting();
+ }
+}
diff --git a/src/main/java/guru/springframework/services/PrimarySpanishGreetingService.java b/src/main/java/guru/springframework/services/PrimarySpanishGreetingService.java
new file mode 100644
index 00000000..c9e32681
--- /dev/null
+++ b/src/main/java/guru/springframework/services/PrimarySpanishGreetingService.java
@@ -0,0 +1,17 @@
+package guru.springframework.services;
+
+import guru.springframework.repository.GreetingRepository;
+
+public class PrimarySpanishGreetingService implements GreetingService {
+
+ private GreetingRepository greetingRepository;
+
+ public PrimarySpanishGreetingService(GreetingRepository greetingRepository) {
+ this.greetingRepository = greetingRepository;
+ }
+
+ @Override
+ public String sayGreeting() {
+ return greetingRepository.getSpanishGreeting();
+ }
+}
diff --git a/src/main/java/guru/springframework/services/SetterGreetingService.java b/src/main/java/guru/springframework/services/SetterGreetingService.java
new file mode 100644
index 00000000..ebd8c453
--- /dev/null
+++ b/src/main/java/guru/springframework/services/SetterGreetingService.java
@@ -0,0 +1,12 @@
+package guru.springframework.services;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class SetterGreetingService implements GreetingService {
+
+ @Override
+ public String sayGreeting() {
+ return "Hello - I was injected by the setter";
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index e69de29b..f763c158 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -0,0 +1,9 @@
+spring.profiles.active=en
+
+guru.jms.username=JMS Username
+guru.jms.password=somepass
+guru.jms.url=SomeURL
+
+guru.username=John
+guru.password=somepass
+guru.dburl=sdfasdffasdf
\ No newline at end of file
diff --git a/src/main/resources/datasource.properties b/src/main/resources/datasource.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/src/main/resources/example.yml b/src/main/resources/example.yml
new file mode 100644
index 00000000..9a917f22
--- /dev/null
+++ b/src/main/resources/example.yml
@@ -0,0 +1,32 @@
+# this is comment
+
+name: Seyda
+
+names: #yorum satırı
+ - Ahmet
+ - Mehmet
+ - Hasan
+
+pound_sign: "#"
+
+book:
+ author: Seyda Özdemir
+ publisher: YKY
+
+truth: yes
+another_truth: True
+more_true: true
+false: no #No, false, FALSE
+
+string_val: "Bu bir string dizisidir."
+
+colon_string: "my courses: spring boot'a giriş"
+
+include_new_lines:
+ sd asd asd
+ asd sad asd
+ asfdsf sdf sd f
+ignore_new_lines:
+ this is
+ just one long
+ line
\ No newline at end of file
diff --git a/src/main/resources/jms.properties b/src/main/resources/jms.properties
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/src/main/resources/jms.properties
@@ -0,0 +1 @@
+
diff --git a/src/test/java/guru/springframework/controllers/ConstructorInjectedControllerTest.java b/src/test/java/guru/springframework/controllers/ConstructorInjectedControllerTest.java
new file mode 100644
index 00000000..f7579cef
--- /dev/null
+++ b/src/test/java/guru/springframework/controllers/ConstructorInjectedControllerTest.java
@@ -0,0 +1,25 @@
+package guru.springframework.controllers;
+
+import guru.springframework.repository.GreetingRepository;
+import guru.springframework.repository.GreetingRepositoryImpl;
+import guru.springframework.services.GreetingServiceImpl;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class ConstructorInjectedControllerTest {
+ private ConstructorInjectedController constructorInjectedController;
+ private GreetingRepository repository;
+
+ @Before
+ public void setUp() throws Exception {
+ repository=new GreetingRepositoryImpl();
+ this.constructorInjectedController = new ConstructorInjectedController(new GreetingServiceImpl(repository));
+ }
+
+ @Test
+ public void testGreeting() throws Exception {
+ assertEquals(GreetingRepositoryImpl.HELLO_GURUS, constructorInjectedController.sayHello());
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/guru/springframework/controllers/PropertyInjectedControllerTest.java b/src/test/java/guru/springframework/controllers/PropertyInjectedControllerTest.java
new file mode 100644
index 00000000..a365d088
--- /dev/null
+++ b/src/test/java/guru/springframework/controllers/PropertyInjectedControllerTest.java
@@ -0,0 +1,33 @@
+package guru.springframework.controllers;
+
+import guru.springframework.repository.GreetingRepository;
+import guru.springframework.repository.GreetingRepositoryImpl;
+import guru.springframework.services.GreetingServiceImpl;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class PropertyInjectedControllerTest {
+
+ /**
+ * spring framework gibi davranarak ioc uygulamasını kendimiz gerçekleştiriyoruz.
+ * PropertyInjectedController'ın GreetingService'e ihtiyacı var ve biz bu
+ * dependency'i somut olarak GreetingServiceImpl() yaratarak veriyoruz.
+ * Bu sınıf bu somut nesneyi kullanıyor.
+ */
+ private PropertyInjectedController propertyInjectedController;
+ private GreetingRepository repository;
+
+ @Before
+ public void setUp() throws Exception {
+ repository=new GreetingRepositoryImpl();
+ this.propertyInjectedController = new PropertyInjectedController();
+ this.propertyInjectedController.greetingServiceImpl = new GreetingServiceImpl(repository);
+ }
+
+ @Test
+ public void testGreeting() throws Exception {
+ assertEquals(GreetingRepositoryImpl.HELLO_GURUS, propertyInjectedController.sayHello());
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/guru/springframework/controllers/SetterInjectedControllerTest.java b/src/test/java/guru/springframework/controllers/SetterInjectedControllerTest.java
new file mode 100644
index 00000000..68f2a5c6
--- /dev/null
+++ b/src/test/java/guru/springframework/controllers/SetterInjectedControllerTest.java
@@ -0,0 +1,27 @@
+package guru.springframework.controllers;
+
+import guru.springframework.repository.GreetingRepository;
+import guru.springframework.repository.GreetingRepositoryImpl;
+import guru.springframework.services.GreetingServiceImpl;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class SetterInjectedControllerTest {
+
+ private SetterInjectedController getterInjectedController;
+ private GreetingRepository repository;
+
+ @Before
+ public void setUp() throws Exception {
+ repository=new GreetingRepositoryImpl();
+ this.getterInjectedController = new SetterInjectedController();
+ this.getterInjectedController.setGreetingService(new GreetingServiceImpl(repository));
+ }
+
+ @Test
+ public void testGreeting() throws Exception {
+ assertEquals(GreetingRepositoryImpl.HELLO_GURUS, getterInjectedController.sayHello());
+ }
+}
\ No newline at end of file