카테고리 없음

Google Cloud Spring 종속성을 사용한 로컬 개발

기록만이살길 2021. 2. 21. 17:13
반응형

Google Cloud Spring 종속성을 사용한 로컬 개발

1. 질문(문제점):

저는 현재 .NET과 같은 Google 클라우드 서비스에 대한 몇 가지 종속성이있는 스프링 부트 애플리케이션을 구현하고 PubSub있습니다. 스프링 부트 자동 구성은 나를 위해 많은 빈을 생성합니다. 예를 들어 MessagingGateway구현 및 PubSubTemplate.

이제 다음과 같은 아티팩트가 있습니다.

@Service
public class MyServiceImpl implements MyService {
    private final PubsubOutboundGateway messagingGateway;

    public MyServiceImpl(PubsubOutboundGateway messagingGateway) {
        this.messagingGateway = messagingGateway;
    }

    @Override
    public void sendToPubSub(String s) {
        messagingGateway.sendTest(s);
    }
}
@MessagingGateway
@Component
public interface PubsubOutboundGateway {
    @Gateway(requestChannel = "myChannel" )
    void sendTest(String test);
}
@Configuration
public class Channels {
    @Bean
    @ServiceActivator(inputChannel = "myChannel")
    public MessageHandler messageSender(PubSubTemplate pubsubTemplate) {
        return new PubSubMessageHandler(pubsubTemplate, "my-topic");
    }
}

로컬 개발을 위해 pubsub를 끄면 다음 오류가 발생합니다.

Consider defining a bean of type 'com.google.cloud.spring.pubsub.core.PubSubTemplate' in your configuration.

그러나 내가 정말로 원하는 것은 메시지를 인쇄하는 로컬 PubsubOutboundGateway입니다. 나는 추가하여이 작업을 수행 할 수 있습니다 @Profile("!local")PubsubOutboundGateway하고 Channels과를 구현 PubsubOutboundGatewayLocalImpl. 그러나 이것은 해킹처럼 보입니다.

활성 GCP 키 등을 설정하지 않고 로컬 개발을 수행하려면 어떻게해야합니까? 아니면 개발을 방해하고 활성 키를 사용해야합니까?

2. 해결방안:

가능한 한 원격 환경에 가까워 지려면 Pub / Sub 에뮬레이터 를 사용하는 것이 좋습니다 .

65892830
반응형