Skip to content

Instantly share code, notes, and snippets.

@yrashish
Created November 20, 2021 08:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yrashish/0262f21caf72aa7e97e13ef3375b8043 to your computer and use it in GitHub Desktop.
Save yrashish/0262f21caf72aa7e97e13ef3375b8043 to your computer and use it in GitHub Desktop.
import io.r2dbc.spi.ConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.r2dbc.connection.init.ConnectionFactoryInitializer;
import org.springframework.r2dbc.connection.init.ResourceDatabasePopulator;
import java.util.List;
@SpringBootApplication
public class ReactiveApplication {
private static final Logger logger = LoggerFactory.getLogger(ReactiveApplication.class);
public static void main(String[] args) {
SpringApplication application = new SpringApplication(ReactiveApplication.class);
application.setApplicationStartup(new BufferingApplicationStartup(10000));
application.run(args);
}
@Bean
ConnectionFactoryInitializer initializer(ConnectionFactory connectionFactory) {
ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer();
initializer.setConnectionFactory(connectionFactory);
initializer.setDatabasePopulator(new ResourceDatabasePopulator(new ClassPathResource("schema.sql")));
return initializer;
}
@Bean
CommandLineRunner init(EmployeeRepository employeeRepository) {
return args -> {
List<Employee> employees = List.of(
new Employee("Peter", "Parker", 25, 20000),
new Employee("Tony", "Stark", 30, 40000),
new Employee("Clark", "Kent", 31, 60000),
new Employee("Bruce", "Wayne", 33, 100000)
);
logger.info("Saving employee " + employeeRepository.saveAll(employees).subscribe());
};
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment