Files
spring-data-examples/mongodb/repository-metrics
2021-04-30 10:29:22 +02:00
..
2021-04-30 10:29:22 +02:00
2021-03-17 09:43:43 +01:00
2021-04-30 10:29:22 +02:00

Spring Data MongoDB 3.1 - Repository Metrics

Configure a RepositoryMethodInvocationListener to capture invocation metrics on Repository interfaces.


@Configuration(proxyBeanMethods = false)
class RepositoryMetricsConfiguration {

	@Bean
	public RepoMetricsPostProcessor repoMetricsPostProcessor() {
		return new RepoMetricsPostProcessor();
	}

	static class RepoMetricsPostProcessor implements BeanPostProcessor {

		@Override
		public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {

			if (bean instanceof RepositoryFactoryBeanSupport<?, ?, ?> repositoryFactoryBean) {

				repositoryFactoryBean
						.addRepositoryFactoryCustomizer(repositoryFactory -> {
							repositoryFactory
									.addInvocationListener(System.out::println);  // register the invocation listener
						});
			}

			return bean;
		}
	}
}