В моем приложении я следую этому учебнику , чтобы реализовать функцию аудита с использованием ThreadLocalTargetSource
.
. Меня беспокоит то, что для регистрации ThreadLocalTargetSource
, у меня естьсоздать еще один ProxyFactoryBean
с @Primary
следующим образом.
@Bean(destroyMethod="destroy")
public ThreadLocalTargetSource threadLocalAuditLog() {
ThreadLocalTargetSource result = new ThreadLocalTargetSource();
result.setTargetBeanName("auditLog");
return result;
}
@Primary
@Bean("proxiedThreadLocalAuditLog")
public ProxyFactoryBean proxiedThreadLocalAuditLog(ThreadLocalTargetSource threadLocalAuditLog) {
ProxyFactoryBean result = new ProxyFactoryBean();
result.setTargetSource(threadLocalAuditLog);
return result;
}
Я попытался удалить @Primary
, и решение больше не работает. Это должно быть общим кодом во всех моих проектах. Поэтому я хотел бы избежать @Primary
, если это возможно.
Поскольку у меня нет достаточных знаний о том, как работает ProxyFactoryBean, я был бы очень признателен, если бы вы могли объяснить мне, почему @Primary
здесь обязательно. Было бы здорово, если бы вы показали мне, как я могу достичь того же результата и без @Primary
.