Skip to content

Commit d03aa12

Browse files
committed
feat: UseCase, Infrastructure 계층 커스텀 어노테이션 추가
1 parent 72d0806 commit d03aa12

File tree

5 files changed

+43
-2
lines changed

5 files changed

+43
-2
lines changed

gradlew

100644100755
File mode changed.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.ftm.server.common.annotation;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
import org.springframework.stereotype.Component;
8+
9+
/**
10+
* 상태 변경을 수행하는 유스케이스에 사용하는 어노테이션 (DB 변경, 외부 서비스 및 API 연동 등) 시스템의 상태를 변경하는 명령(command) 작업을 수행하는 어노테이션
11+
*/
12+
@Target(ElementType.TYPE)
13+
@Retention(RetentionPolicy.RUNTIME)
14+
@Component
15+
public @interface CommandUseCase {}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.ftm.server.common.annotation;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
import org.springframework.stereotype.Component;
8+
9+
/** 인프라스트럭처 계층 구현체 어노테이션 */
10+
@Target(ElementType.TYPE)
11+
@Retention(RetentionPolicy.RUNTIME)
12+
@Component
13+
public @interface InfraService {}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.ftm.server.common.annotation;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
import org.springframework.stereotype.Component;
8+
9+
/** 상태 변경 없이 단순 조회 작업을 수행하는 유스케이스에 사용하는 어노테이션 */
10+
@Target(ElementType.TYPE)
11+
@Retention(RetentionPolicy.RUNTIME)
12+
@Component
13+
public @interface QueryUseCase {}

src/main/java/com/ftm/server/infrastructure/redis/RedisService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import com.ftm.server.adapter.gateway.RedisCacheGateway;
44
import com.ftm.server.adapter.gateway.RedisSessionGateway;
5+
import com.ftm.server.common.annotation.InfraService;
56
import lombok.RequiredArgsConstructor;
67
import org.springframework.data.redis.core.RedisTemplate;
7-
import org.springframework.stereotype.Service;
88

99
/** Redis Caching, Session 구현체 각 역할 별 레디스 조작 관리 (비즈니스 로직이 포함되면 안됨, 기술적인 로직만 수행) */
10-
@Service
10+
@InfraService
1111
@RequiredArgsConstructor
1212
public class RedisService implements RedisCacheGateway, RedisSessionGateway {
1313

0 commit comments

Comments
 (0)