34 lines
1.6 KiB
Java
34 lines
1.6 KiB
Java
package com.baiyue.common.audit;
|
|
|
|
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
|
|
/**
|
|
* 审计 Outbox 的 RocketMQ 发布配置。
|
|
* 该配置与基础审计配置隔离:未引入 RocketMQ 的服务仍可使用 HTTP 审计投递。
|
|
*/
|
|
@AutoConfiguration(after = BaiyueAuditAutoConfiguration.class)
|
|
@EnableScheduling
|
|
@ConditionalOnClass(name = "org.apache.rocketmq.spring.core.RocketMQTemplate")
|
|
@ConditionalOnBean(type = {
|
|
"com.baiyue.common.audit.AuditOutboxRepository",
|
|
"org.apache.rocketmq.spring.core.RocketMQTemplate"
|
|
})
|
|
@ConditionalOnProperty(prefix = "baiyue.audit.outbox", name = "publisher-enabled", havingValue = "true")
|
|
public class AuditOutboxRocketMqAutoConfiguration {
|
|
|
|
@Bean
|
|
AuditOutboxPublisher auditOutboxPublisher(AuditOutboxRepository repository,
|
|
RocketMQTemplate rocketMQ,
|
|
AuditProperties properties,
|
|
@Value("${spring.application.name:unknown}-${random.uuid}") String owner) {
|
|
return new AuditOutboxPublisher(repository, rocketMQ, properties, owner);
|
|
}
|
|
}
|