From 45396078421158ccd0da616b767221bbb23c21af Mon Sep 17 00:00:00 2001 From: msung99 Date: Tue, 13 Aug 2024 10:57:33 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20Declaring=20a=20Bean=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cholog/configuration/config/AppConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java b/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java index 6c9445ab..ff1ba51e 100644 --- a/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java +++ b/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java @@ -2,8 +2,10 @@ import cholog.configuration.AuthService; import cholog.configuration.AuthenticationPrincipalArgumentResolver; +import org.springframework.context.annotation.Configuration; // TODO: Java-based Configuration을 하기 위한 클래스로 지정하기 +@Configuration public class AppConfig { // TODO: AuthService 빈을 등록하기 From e7af6a05efff0d49f302a46b7772ec6524b4dfaf Mon Sep 17 00:00:00 2001 From: msung99 Date: Tue, 13 Aug 2024 10:59:25 +0900 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20Bean=20Dependencies=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cholog/configuration/config/AppConfig.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java b/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java index ff1ba51e..802ea96a 100644 --- a/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java +++ b/spring-core-2/initial/src/main/java/cholog/configuration/config/AppConfig.java @@ -2,6 +2,7 @@ import cholog.configuration.AuthService; import cholog.configuration.AuthenticationPrincipalArgumentResolver; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; // TODO: Java-based Configuration을 하기 위한 클래스로 지정하기 @@ -9,11 +10,13 @@ public class AppConfig { // TODO: AuthService 빈을 등록하기 + @Bean public AuthService authService() { return null; } // TODO: AuthenticationPrincipalArgumentResolver를 빈 등록하고 authService에 대한 의존성을 주입하기 + @Bean public AuthenticationPrincipalArgumentResolver authenticationPrincipalArgumentResolver() { return null; } From defae4d3d9e7089175323380a6b7f71c0bbc8288 Mon Sep 17 00:00:00 2001 From: msung99 Date: Tue, 13 Aug 2024 11:09:24 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20Using=20@PropertySource=20and=20@Va?= =?UTF-8?q?lue=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cholog/property/config/PropertySourceConfig.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-core-2/initial/src/main/java/cholog/property/config/PropertySourceConfig.java b/spring-core-2/initial/src/main/java/cholog/property/config/PropertySourceConfig.java index 03885a37..9621081f 100644 --- a/spring-core-2/initial/src/main/java/cholog/property/config/PropertySourceConfig.java +++ b/spring-core-2/initial/src/main/java/cholog/property/config/PropertySourceConfig.java @@ -2,10 +2,15 @@ import cholog.property.GoogleDriveRestClient; import cholog.property.GoogleMapsRestClient; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; // TODO: Java-based Configuration을 하기 위한 클래스로 지정하기 // TODO: ext-api.properties 파일을 활용하기 위한 설정 추가하기 +@Configuration +@PropertySource("classpath:ext-api.properties") public class PropertySourceConfig { private final Environment env; @@ -16,8 +21,9 @@ public PropertySourceConfig(Environment env) { // TODO: ext-api.properties의 google.api.endpoint 값을 Environment를 사용해서 가져오기 // TODO: 위 endpoint 값을 사용하여 GoogleMapsRestClient를 빈으로 등록하기 + @Bean public GoogleMapsRestClient googleMapsRestClient() { - return new GoogleMapsRestClient(""); + return new GoogleMapsRestClient(env.getProperty("google.api.endpoint")); } // TODO: ext-api.properties의 google.api.endpoint 값을 어노테이션을 사용해서 가져오기 From eb8eb5a000e8e2d6107e996647dbaaa7175b425a Mon Sep 17 00:00:00 2001 From: msung99 Date: Tue, 13 Aug 2024 11:13:32 +0900 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20Externalized=20Configuration=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cholog/property/config/AuthConfig.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/spring-core-2/initial/src/main/java/cholog/property/config/AuthConfig.java b/spring-core-2/initial/src/main/java/cholog/property/config/AuthConfig.java index b93bd957..08f2f49a 100644 --- a/spring-core-2/initial/src/main/java/cholog/property/config/AuthConfig.java +++ b/spring-core-2/initial/src/main/java/cholog/property/config/AuthConfig.java @@ -1,11 +1,17 @@ package cholog.property.config; import cholog.property.JwtTokenKeyProvider; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; // TODO: Java-based Configuration을 하기 위한 클래스로 지정하기 +@Configuration public class AuthConfig { // TODO: application.properties의 security.jwt.token.secret-key 값을 활용하여 JwtTokenKeyProvider를 빈으로 등록하기 - public JwtTokenKeyProvider jwtTokenKeyProvider() { - return new JwtTokenKeyProvider(""); + @Bean + public JwtTokenKeyProvider jwtTokenKeyProvider(@Value("${security.jwt.token.secret-key}") String secretKey) { + return new JwtTokenKeyProvider(secretKey); } + } From 0967ba9bb7356eae9fbfbc407f73ecf4119d6422 Mon Sep 17 00:00:00 2001 From: msung99 Date: Tue, 13 Aug 2024 11:19:51 +0900 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20@Profile=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cholog/profile/config/ProfileConfig.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spring-core-2/initial/src/main/java/cholog/profile/config/ProfileConfig.java b/spring-core-2/initial/src/main/java/cholog/profile/config/ProfileConfig.java index 11586947..6214ee23 100644 --- a/spring-core-2/initial/src/main/java/cholog/profile/config/ProfileConfig.java +++ b/spring-core-2/initial/src/main/java/cholog/profile/config/ProfileConfig.java @@ -3,16 +3,24 @@ import cholog.profile.InmemoryMessageRepository; import cholog.profile.JdbcMessageRepository; import cholog.profile.MessageRepository; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; // TODO: Java-based Configuration을 하기 위한 클래스로 지정하기 +@Configuration public class ProfileConfig { // TODO: dev 프로파일일 때만 InmemoryMessageRepository 빈이 등록되도록 설정하기 + @Bean("dataSource") + @Profile("dev") public MessageRepository inMemoryMessageRepository() { return new InmemoryMessageRepository(); } // TODO: prod 프로파일일 때만 InmemoryMessageRepository 빈이 등록되도록 설정하기 + @Bean("dataSource") + @Profile("prod") public MessageRepository jdbcMessageRepository() { return new JdbcMessageRepository(); }