반응형
Feign Client
메일 발송 서비스인 mailgun를 스프링환경에서 간편하게 호출하기 위해서는 feign client라는 라이브러리가 필요하다.
spring-cloud-starter-openfeign 으로 라이브러리를 추가해주면 된다.
JPA처럼 인터페이스만 만들어주면 스프링이 자동으로 구현체를 만들어준다.
mailgun 사용법은 여기를 보면된다.
https://documentation.mailgun.com/en/latest/quickstart-sending.html
의존성
ext {
set('springCloudVersion', "2021.0.3")
}
dependencies {
...
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
...
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
사용하기
@SpringBootApplication
@EnableFeignClients
public class PuzzleApplication {
public static void main(String[] args) {
SpringApplication.run(PuzzleApplication.class, args);
}
}
@FeignClient(name = "mailgun", url="https://api.mailgun.net/v3/")
@Qualifier("mailgun")
public interface MailgunClient {
@PostMapping("domain/messages")
Response sendEmail(@SpringQueryMap SendMailForm form);
}
@EnableFeignClients 를 root package 위치의 클래스에 붙여주어야한다.
@EnableFeignClients는 지정된 package를 돌아다니면서 @FeignClient를 찾아 구현체를 생성한다.
Bean
feign에는 기본으로 설정되는 bean들이 있다.
그중에서 BasicAuthenticationInterceptor 를 mailgun에 접근할 수 있도록 설정해주었다.
@Configuration
public class FeignConfig {
@Value("${mailgun.key}")
String API_KEY;
@Qualifier(value = "mailgun")
@Bean
public BasicAuthenticationInterceptor basicAuthenticationInterceptor(){
return new BasicAuthenticationInterceptor("api",API_KEY);
}
}
시나리오
반응형
'SPRING' 카테고리의 다른 글
Redis 사용방법 (feat. RedisTemplate) (0) | 2024.02.06 |
---|---|
[Swagger] RequestHeader 설정하기 (0) | 2024.01.29 |
[QueryDSL] 정리 및 spring boot에서 사용법 (0) | 2024.01.21 |
Swagger 사용방법(feat.springdoc) (1) | 2023.12.30 |
3. 인증 관련 구조와 내부 동작 (1) | 2023.12.23 |