Skip to content

Instantly share code, notes, and snippets.

View wenqiglantz's full-sized avatar

Wenqi Glantz wenqiglantz

View GitHub Profile
<dependency>
<groupId>com.playtika.reactivefeign</groupId>
<artifactId>feign-reactor-spring-cloud-starter</artifactId>
<version>3.2.6</version>
<type>pom</type>
</dependency>
@Configuration
@ConfigurationProperties
@Indexed
@Data
@Slf4j
public class CustomerClientConfig {
@Value("${customer-service.http-client.read-timeout}")
private int readTimeout;
customer-service:
http-client:
read-timeout: 3000
write-timeout: 3000
connect-timeout: 3000
response-timeout: 3000
retry:
max-retry: 3
retry-interval: 3000
urls:
@EnableReactiveFeignClients
@SpringBootApplication
public class CustomerServiceClientApplication {
public static void main(String[] args) {
SpringApplication.run(CustomerServiceClientApplication.class, args);
}
}
@ReactiveFeignClient(
name = "customer-service",
url = "${customer-service.urls.base-url}",
configuration = CustomerClientConfig.class
)
public interface CustomerServiceClient {
@PostMapping(value = "${customer-service.urls.create-customer-url}", headers = {"Content-Type=application/json"})
Mono<CustomerVO> createCustomer(@RequestBody CustomerVO customerVO);
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.0-M5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
@Configuration
@ConditionalOnClass(SampleService.class)
public class SampleAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public SampleService sampleService() {
return new SampleService();
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.github.wenqiglantz.library</groupId>
<artifactId>sample-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>