diff --git a/springframework-springfundamentals-project/conference-javaconfig/.idea/.gitignore b/springframework-springfundamentals-project/conference-javaconfig/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/springframework-springfundamentals-project/conference-javaconfig/.idea/compiler.xml b/springframework-springfundamentals-project/conference-javaconfig/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..f5ef3e99988ecef7e732e7d7dde8e231c547406f --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/.idea/compiler.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <annotationProcessing> + <profile name="Maven default annotation processors profile" enabled="true"> + <sourceOutputDir name="target/generated-sources/annotations" /> + <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> + <outputRelativeToContentRoot value="true" /> + <module name="conference" /> + <module name="conference-javaconfig" /> + </profile> + </annotationProcessing> + </component> +</project> \ No newline at end of file diff --git a/springframework-springfundamentals-project/conference-javaconfig/.idea/jarRepositories.xml b/springframework-springfundamentals-project/conference-javaconfig/.idea/jarRepositories.xml new file mode 100644 index 0000000000000000000000000000000000000000..712ab9d985c20018a0c97b93d2148ac1ffe588a5 --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RemoteRepositoriesConfiguration"> + <remote-repository> + <option name="id" value="central" /> + <option name="name" value="Central Repository" /> + <option name="url" value="https://repo.maven.apache.org/maven2" /> + </remote-repository> + <remote-repository> + <option name="id" value="central" /> + <option name="name" value="Maven Central repository" /> + <option name="url" value="https://repo1.maven.org/maven2" /> + </remote-repository> + <remote-repository> + <option name="id" value="jboss.community" /> + <option name="name" value="JBoss Community repository" /> + <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> + </remote-repository> + </component> +</project> \ No newline at end of file diff --git a/springframework-springfundamentals-project/conference-javaconfig/.idea/misc.xml b/springframework-springfundamentals-project/conference-javaconfig/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b661a5ffc3c46924b456f0eac25ea4c6e9b4047 --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/.idea/misc.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ExternalStorageConfigurationManager" enabled="true" /> + <component name="MavenProjectsManager"> + <option name="originalFiles"> + <list> + <option value="$PROJECT_DIR$/pom.xml" /> + </list> + </option> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/out" /> + </component> +</project> \ No newline at end of file diff --git a/springframework-springfundamentals-project/conference-javaconfig/.idea/vcs.xml b/springframework-springfundamentals-project/conference-javaconfig/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..b2bdec2d71b6a5ce4ae49efc37516809c50e4d5e --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/springframework-springfundamentals-project/conference-javaconfig/conference-javaconfig.iml b/springframework-springfundamentals-project/conference-javaconfig/conference-javaconfig.iml new file mode 100644 index 0000000000000000000000000000000000000000..78b2cc53b203f0b97534bb1184cdc7b474339fb4 --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/conference-javaconfig.iml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4" /> \ No newline at end of file diff --git a/springframework-springfundamentals-project/conference-javaconfig/pom.xml b/springframework-springfundamentals-project/conference-javaconfig/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7ceb45a18ce88a0f036f264f068e3f0a4d9aaf8 --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/pom.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.example</groupId> + <artifactId>conference-javaconfig</artifactId> + <version>1.0-SNAPSHOT</version> + + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>5.2.13.RELEASE</version> + </dependency> + </dependencies> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + + +</project> \ No newline at end of file diff --git a/springframework-springfundamentals-project/conference-javaconfig/src/main/java/AppConfig.java b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/AppConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..16011107d4f84723b3341339e056db7498b93237 --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/AppConfig.java @@ -0,0 +1,25 @@ +import com.example.repository.HibernateSpeakerRepositoryImpl; +import com.example.repository.SpeakerRepository; +import com.example.service.SpeakerService; +import com.example.service.SpeakerServiceImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class AppConfig { + + @Bean(name = "speakerService") + public SpeakerService getSpeakerService() { + // Using Constructor Injection + SpeakerServiceImpl service = new SpeakerServiceImpl(getSpeakerRespository()); + // config service with repository (setter injection) +// service.setRepository(getSpeakerRespository()); + return service; + } + + @Bean(name = "speakerRepository") + public SpeakerRepository getSpeakerRespository() { + return new HibernateSpeakerRepositoryImpl(); + } + +} diff --git a/springframework-springfundamentals-project/conference-javaconfig/src/main/java/Application.java b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/Application.java new file mode 100644 index 0000000000000000000000000000000000000000..9ce5398561e49d4e92cb5b36bbfe31ac0e153f3d --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/Application.java @@ -0,0 +1,16 @@ +import com.example.service.SpeakerService; +import com.example.service.SpeakerServiceImpl; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class Application { + public static void main(String[] args) { + //Loads config into application + //Injects speaker repo bean into speaker service bean + ApplicationContext appContext = new AnnotationConfigApplicationContext(AppConfig.class); + +// SpeakerService service = new SpeakerServiceImpl(); + SpeakerService service = appContext.getBean("speakerService", SpeakerService.class); + System.out.println(service.findALl().get(0).getFirstName()); + } +} diff --git a/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/model/Speaker.java b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/model/Speaker.java new file mode 100644 index 0000000000000000000000000000000000000000..da4cd10906cf8b91f5746feafa67628d683677fc --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/model/Speaker.java @@ -0,0 +1,22 @@ +package com.example.model; + +public class Speaker { + private String firstName; + private String lastName; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } +} diff --git a/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/repository/HibernateSpeakerRepositoryImpl.java b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/repository/HibernateSpeakerRepositoryImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..bebc2a0aeb414568b9040e6752ce540bce463ade --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/repository/HibernateSpeakerRepositoryImpl.java @@ -0,0 +1,21 @@ +package com.example.repository; + +import com.example.model.Speaker; + +import java.util.ArrayList; +import java.util.List; + +public class HibernateSpeakerRepositoryImpl implements SpeakerRepository { + + @Override + public List<Speaker> findAll() { + List<Speaker> speakerList = new ArrayList<Speaker>(); + Speaker speaker = new Speaker(); + speaker.setFirstName("Deep"); + speaker.setLastName("Bhuller"); + + speakerList.add(speaker); + + return speakerList; + } +} diff --git a/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/repository/SpeakerRepository.java b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/repository/SpeakerRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..d1bf862692c60d7e225d017edd464df9c727a78a --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/repository/SpeakerRepository.java @@ -0,0 +1,9 @@ +package com.example.repository; + +import com.example.model.Speaker; + +import java.util.List; + +public interface SpeakerRepository { + List<Speaker> findAll(); +} diff --git a/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/service/SpeakerService.java b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/service/SpeakerService.java new file mode 100644 index 0000000000000000000000000000000000000000..d43601cac8ee3d92a9d85ca2d6ed8868daea42ae --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/service/SpeakerService.java @@ -0,0 +1,9 @@ +package com.example.service; + +import com.example.model.Speaker; + +import java.util.List; + +public interface SpeakerService { + List<Speaker> findALl(); +} diff --git a/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/service/SpeakerServiceImpl.java b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/service/SpeakerServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..721d27780d8fb8f360d9587dc8ae502a17dfdd6a --- /dev/null +++ b/springframework-springfundamentals-project/conference-javaconfig/src/main/java/com/example/service/SpeakerServiceImpl.java @@ -0,0 +1,25 @@ +package com.example.service; + +import com.example.model.Speaker; +import com.example.repository.HibernateSpeakerRepositoryImpl; +import com.example.repository.SpeakerRepository; + +import java.util.List; + +public class SpeakerServiceImpl implements SpeakerService { + + private SpeakerRepository repository; + + public SpeakerServiceImpl(SpeakerRepository repository) { + this.repository = repository; + } + + @Override + public List<Speaker> findALl() { + return repository.findAll(); + } + + public void setRepository(SpeakerRepository repository) { + this.repository = repository; + } +} diff --git a/springframework-springfundamentals-project/conference-javaconfig/target/classes/AppConfig.class b/springframework-springfundamentals-project/conference-javaconfig/target/classes/AppConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..47c06828d4ad25d2fba631275d2f1025216aabe0 Binary files /dev/null and b/springframework-springfundamentals-project/conference-javaconfig/target/classes/AppConfig.class differ diff --git a/springframework-springfundamentals-project/conference-javaconfig/target/classes/Application.class b/springframework-springfundamentals-project/conference-javaconfig/target/classes/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..7feb581cb365eb27c12b5b701c43e87be68e2787 Binary files /dev/null and b/springframework-springfundamentals-project/conference-javaconfig/target/classes/Application.class differ diff --git a/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/model/Speaker.class b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/model/Speaker.class new file mode 100644 index 0000000000000000000000000000000000000000..c23510ec0a6208a43f637407eb663afa66420a8f Binary files /dev/null and b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/model/Speaker.class differ diff --git a/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/repository/HibernateSpeakerRepositoryImpl.class b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/repository/HibernateSpeakerRepositoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..e6af71fbc5615b9dd0052362e15c9c0e0fe57985 Binary files /dev/null and b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/repository/HibernateSpeakerRepositoryImpl.class differ diff --git a/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/repository/SpeakerRepository.class b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/repository/SpeakerRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..58bd1fde045eda1edeef2d3219425fa60d6ca793 Binary files /dev/null and b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/repository/SpeakerRepository.class differ diff --git a/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/service/SpeakerService.class b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/service/SpeakerService.class new file mode 100644 index 0000000000000000000000000000000000000000..a4702b7e891a602acc5b96cf0697fe403f7af123 Binary files /dev/null and b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/service/SpeakerService.class differ diff --git a/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/service/SpeakerServiceImpl.class b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/service/SpeakerServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..a95f06ba62406f74e82acccd88b57ad11a45e6f9 Binary files /dev/null and b/springframework-springfundamentals-project/conference-javaconfig/target/classes/com/example/service/SpeakerServiceImpl.class differ