springboot项目,原先有redisson,引入邮箱包后启动报错
Error creating bean with name 'mailNotifier' defined in class path resource [de/codecentric/boot/admin/server/config/AdminServerNotifierAutoConfiguration$MailNotifierConfiguration.class]
控制台有大量的redisson连接报错,以为是redis报错
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mailNotifier' defined in class path resource [de/codecentric/boot/admin/server/config/AdminServerNotifierAutoConfiguration$MailNotifierConfiguration.class]: Unsatisfied dependency expressed through method 'mailNotifier' parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'de.codecentric.boot.admin.server.domain.entities.InstanceRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
java.io.IOException: 远程主机强迫关闭了一个现有的连接。
.... redis连接错误
后来找到原因,在创建名为 mailNotifier 的Bean时出现了问题。这个Bean是由Spring Boot Admin的自动配置类 AdminServerNotifierAutoConfiguration$MailNotifierConfiguration 定义的。
使用排除规则,如果确定不需要邮件通知功能,可以通过排除自动配置来避免创建这个Bean
@SpringBootApplication(exclude = {AdminServerNotifierAutoConfiguration.class})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
至此,控制台启动正常。