Files
Mark Paluch a73d74a76d Polishing.
Move Testcontainer creation into utility.

See #632
2022-05-19 11:23:00 -05:00
..
2022-05-19 11:23:00 -05:00
2022-05-19 11:23:00 -05: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;
		}
	}
}