[telegram] 스프링 부트 텔레그램 봇 쉽게 만들기

정리맨·2023년 1월 4일
2

https://github.com/kshashov/spring-boot-starter-telegram

  1. 메이븐 추가

  2. 예제 보고 수정

@BotRequest(type = { MessageType.ANY })
public BaseRequest BaseMethod(User user, Chat chat, Message message) {
}

이걸로 모든 타입의 메세지를 받아서 if문으로 분기를 찢어주면 좀더 편하게 처리 가능

user, chat, message 안에 필요한 정보는 다 들어있기 때문에 toString 이나 IDE에서 " message.text() <= 메세지 내용"

등으로 꺼내서 쓰면 단순하고 빠르게 작성가능

4. 다 작성한 후에 별도의 스프링 프로젝트가 아니라 기존 프로젝트에 붙여서 돌리고 싶다면

@SpringBootApplication
@EnableScheduling
@Import(TelegramBot.class)
public class projectApplication extends SpringBootServletInitializer {

public static void main(String[] args) {
SpringApplication.run(projectApplication.class, args);
}
}

이런식으로 import 어노테이션을 사용해서 돌려준다

출처 : https://stackoverflow.com/questions/24516070/spring-run-multiple-springapplication-run-in-application-main-method

4=> 기존에 테스트 할때 git에서 제공한 샘플 파일 그대로 java class 파일에 main method를 적용하여 실행하였는데,

기존 프로젝트에 알림용으로 작성하는 텔레그램의 봇의 경우에는 샘플 파일에서 가져온 main method는 지워도 실행 가능했다.

결론> Spring은 Singleton 패턴으로 Bean creation 하여 IoC로 lifecycle를 제어하기 때문에 main을 추가하지 않고도 실행된다.
따라서 spring boot 실행 시점에 thread에 자동으로 추가하여 longpolling을 사용 가능하다.

profile
ㅎㅎ

0개의 댓글