第一轮核心知识
面试官:请解释Spring Boot中自动配置的工作原理并演示如何自定义一个@ConfigurationProperties组件?
xbhog:自动配置通过EnableAutoConfiguration
注解触发,结合当前环境判断(如是否检测到MyBatis依赖)和条件注解(@ConditionalOnClass)来决定是否启用配置类。若需自定义配置,可通过创建带@ConfigurationProperties("my.properties.prefix")
的POJO类,并在配置类中标记@EnableConfigurationProperties
实现。例如配置数据库连接池:
my.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
面试官:优秀!现在请你描述Kafka Producer实现消息分区的策略逻辑和常见自定义分区场景
xbhog:默认分区器采用RangePartitioner
(Kafka 0.11+)按轮询或key哈希分配,业务场景中若需要按用户ID分区可实现Partitioner
接口,重写partition()方法。例如电商订单系统按用户维度做分区:
public int partition(String topic, Object key, by