跳至主要內容
Spring Boot通过企业邮箱发邮件被Gmail退回的问题解决方法

这两天给我们开发的Chrome插件:Youtube中文配音增加了账户注册和登录功能,其中有一步是邮箱验证,所以这边会在Spring Boot后台给用户的邮箱发个验证信息。如果发邮件,之前的文章教程里就有,这里就不说了,着重说说这两天发现所有用Gmail注册的用户都被退件的问题。

报错现象

先来看看具体报错(如果您也碰到这种情况,那么可以看看后面的内容):

退信原因:发件人(youtubedubbing@mail.spring4all.com)域名的DNS记录未设置或设置错误导致对方拒收此邮件。 host gmail-smtp-in.l.google.com[142.251.10.26] said: 550-5.7.26 This mail is unauthenticated, which poses a security risk to the sender and Gmail users, and has been blocked. The sender must authenticate with at least one of SPF or DKIM. For this message, DKIM checks did not pass and SPF check for [mail.spring4all.com] did not pass with ip: [54.204.34.130]. The sender should visit https://support.google.com/mail/answer/81126#authentication for instructions on setting up authentication. k191-20020a636fc8000000b00565bcd33890si6279798pgc.848 - gsmtp (in reply to end of DATA command) 解决方案:请通知你的邮箱管理员为邮箱域名设置正确的DNS(SPF、DKIM、DMARC)记录。详细请见 http://service.exmail.qq.com/cgi-bin/help?subtype=1&&no=1000580&&id=20012 。


程序猿DD原创大约 3 分钟Spring BootSpring Boot
Java自带的4种字符串组织和格式化方法

在Java中,组织字符串是平时最常见的操作,这里总结一下Java自带的四种处理方式。

1. 使用+拼接

案例:

String name = "DD";
String host = "blog.didispace.com";
String result = "hello " + name + ", your blog is " + host; 

程序猿DD原创大约 2 分钟JavaJava
内网穿透最好用的还得是ngrok,一行命令就搞定!

最近在写支付的东西,调试时候需要让支付平台能够回调本地接口来更新支付成功的状态。但由于开发机器没有公网IP,所以需要使用内网穿透来让支付平台能够成功访问到本地开发机器,这样才能更高效率的进行调试。

推荐内网穿透的文章已经很多很多,还有很多大合集的推荐,但也因为推荐的太多,也会让人眼花缭乱,不断尝试不断受挫。有的接受不了收费、有的配置繁琐,有的运行不稳定,还有的有病毒。

这里DD就不多推荐了,只推荐一个个人认为最好用的,那就是:ngrok 。只需要一行命令就能帮你轻松实现内网穿透!

下面你可以跟着我的操作来完成第一次使用:


程序猿DD原创大约 2 分钟开源推荐开源
一款极具潜力的开源免费数据库管理工具:slashbase

最近看到一个冷门的数据库管理工具:slashbase

这个工具是开源免费的,由于开源不久,目前才900+的Star,但用下来还是非常不错的,DD觉得这款工具还是非常有潜力的,所以给大家推荐一下。

主要特性

slashbase有几个比较亮眼的功能,比如:

  • 它提供了两种不同的管理方式,用户可以根据管理要求选择不同的方式访问数据库
    • 桌面版IDE:跟传统管理工具类似,通过桌面客户端程序的方式配置数据库连接后使用
    • 服务器版IDE:该版本类似PHPMyAdmin,可以基于浏览器来操作数据库

程序猿DD原创大约 2 分钟开源推荐开源
你的Spring Boot应用启动很慢?不妨试试这个工具!

睡不着闲逛,在GitHub上看到一个不错的开源项目:Spring Startup Analyzer

从项目名称中就大概能猜到,这是一个分析Spring应用启动过程的工具。Spring Startup Analyzer通过采集Spring应用启动过程的数据,进而生成一个交互式的分析报告,帮助用户发现Spring应用启动慢的位置。同时,Spring Startup Analyzer还提供了Spring Bean异步初始化的工具,来帮助开发者加快Spring应用的启动时间。

下面一起来看看其提供的强大功能。

分析能力


程序猿DD原创大约 5 分钟Spring BootSpringSpring Boot开源
Spring 6.1新特性:RestClient

在最近发布的Spring 6.1 M2版本中,推出了一个全新的同步HTTP客户端:RestClient。用一句话来让Spring开发者认识RestClient的话:像WebClient一样具备流畅API的RestTemplate。所以,RestClient的使命就是淘汰已经有14年历史的RestTemplate

关于WebClientRestTemplate,之前在几种服务消费方式(RestTemplate、WebClient、Feign)这篇文章中有详细的介绍。如果您有一定的了解,那么对于RestClient一定可以快速上手。


程序猿DD原创大约 3 分钟Spring BootSpring Boot
Spring Boot自带的工具类,不要太好用,建议收藏!

今天给大家说说Spring Boot的自带工具类。

Spring Boot作为一个快速开发框架,其自带的工具类是开发过程中不可或缺的一部分。这些工具类的高效和实用性,能够大大提高开发人员的工作效率。在本文中,我们将重点介绍Spring Boot自带的工具类,帮助开发者更好地利用它们,提高开发效率。

断言

  1. 断言是一个逻辑判断,用于检查不应该发生的情况
  2. Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启
  3. SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查

java小资大约 10 分钟Spring BootSpring Boot
VSCode中打开NodeJS项目自动切换对应NodeJS版本的配置

这几年搞了不少静态站点,有的是Hexo的,有的是VuePress的。由于不同的主题对于NodeJS的版本要求不同,所以本机上不少NodeJS的版本。

关于如何管理多个NodeJS版本,很早之前就写过用nvm来管理的相关文章,这里就不赘述了,有需要的可以看这篇Node.js环境搭建

虽然有了多版本管理,但是默认版本只有一个,所以很多时候,在用VSCode打开不同项目的时候,还需要用nvm use来切换不同的版本使用。显然一直这样操作很麻烦,而且容易忘记什么项目用什么版本。


程序猿DD原创大约 1 分钟日常记录VSCodeNode.js
提前预体验阿里大模型“通义千问”的方法来了!

随着AI大模型的浪潮席卷全球,如今的AI技术已经颠覆了大家对传统AI的认识,微软更是用浏览器与搜索引擎上的实践,证明了当今的AI技术具备打破行业格局的能力。

对于我们应用开发者来说,AI基建的建设与竞争是无法参与的,但在AI的应用领域依然大有可为!目前,国内各大科技公司已经陆续推出了各自的AI大模型,如:阿里的“通义千问”。我们接下来要多花时间去学习和思考如何使用它们来改变和优化自己所处的行业产品。

当前大模型产品都还处于内测阶段,我们需要申请或有邀请码才能使用体验。如果您目前还在焦急等待试用申请的通过,那么接下来的内容你绝对不能错过!

下面DD就给大家介绍一种拥有自由提问30次的方法,提前预体验一下阿里大模型“通义千问”的能力。下面就跟着我的步骤,先人一步,亲手体验一下阿里大模型吧!


程序猿DD原创大约 3 分钟人工智能ChatGPT
Spring Boot 3.1中如何整合Spring Security和Keycloak

在今年2月14日的时候,Keycloak 团队宣布他们正在弃用大多数 Keycloak 适配器。其中包括Spring Security和Spring Boot的适配器,这意味着今后Keycloak团队将不再提供针对Spring Security和Spring Boot的集成方案。但是,如此强大的Keycloak,还要用怎么办呢?本文就来聊聊,在最新的Spring Boot 3.1版本之下,如何将Keycloak和Spring Security一起跑起来。

准备工作

这里所采用的框架与工具版本信息如下:

  • Spring Boot 3.1.0
  • Keycloak 21.1.1

程序猿DD原创大约 3 分钟Spring BootSpring BootSpring SecurityKeyCloak
2
3
4
5
...
40