Files
baiyue-firstleg/common-audit/src/main/java/com/baiyue/common/audit/AuditOutboxRocketMqAutoConfiguration.java
T

32 lines
1.5 KiB
Java
Raw Normal View History

2026-08-05 14:20:04 +08:00
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;
/**
* 审计 Outbox 的 RocketMQ 发布配置。
* 该配置与基础审计配置隔离:未引入 RocketMQ 的服务仍可使用 HTTP 审计投递。
*/
@AutoConfiguration(after = BaiyueAuditAutoConfiguration.class)
@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);
}
}