微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Boot 构建问题

如何解决Spring Boot 构建问题

**邮件发件人的自定义配置**

    @Configuration
    public class EmailConfig {
        
        private EmailProperties emailProp;
        
        @Autowired
        ConstantRepository constantRepository;
        
        public EmailConfig(EmailProperties emailProp) {
            this.emailProp = emailProp;
        }
        @Bean
        public JavaMailSender getJavaMailSender() {
Constants cons = constantRepository.findByConstantKeyAndStatus("DEFAULT_MAIL_ACCOUNT_CREDENTIAL",true);
        String password = cons.getValue();
}

在这里,我试图从数据库获取密码,但问题是在构建应用程序时它调用了存储库,这导致失败,因为 IP 白名单问题出现错误:无法获取 JDBC 连接。

如何在构建应用程序时停止这些 repo 调用

解决方法

您可以在配置级别使用@Lazy 注解。以便在首次请求时在运行时创建 bean。

 @Configuration
    @Lazy
    public class EmailConfig {
        
        private EmailProperties emailProp;
        
        @Autowired
        ConstantRepository constantRepository;
        
        public EmailConfig(EmailProperties emailProp) {
            this.emailProp = emailProp;
        }
        @Bean
        public JavaMailSender getJavaMailSender() {
Constants cons = constantRepository.findByConstantKeyAndStatus("DEFAULT_MAIL_ACCOUNT_CREDENTIAL",true);
        String password = cons.getValue();
}

参考:https://www.baeldung.com/spring-lazy-annotation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。