Как зарегистрировать ThreadLocalTargetSource без аннотации @Primary в ProxyFactoryBean - PullRequest
0 голосов
/ 02 октября 2019

В моем приложении я следую этому учебнику , чтобы реализовать функцию аудита с использованием 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...