首页 文章 精选 留言 我的

精选列表

搜索[SpringBoot],共4203篇文章
优秀的个人博客,低调大师

springboot发送邮件

spring boot 发送邮件 1.创建spring boot项目 2.引入邮件依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 3.配置邮件账号密码等信息 spring: mail: host: smtp.qq.com username: 123456@qq.com password: abcdefg # 按照自己信息进行的配置 4. 依赖注入 JavaMailSender public class DemoApplication { @Autowired private JavaMailSender javaMailSender; } 5.发送邮件 @RestController @SpringBootApplication public class DemoApplication { @Autowired private JavaMailSender javaMailSender; @GetMapping("/test") public void contextLoads() { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom("123456@qq.com"); helper.setSubject("atet"); helper.setTo("123456@163.com"); helper.setText("<html><p align='center'><p></html>"); javaMailSender.send(message); } catch (Exception e) { e.printStackTrace(); } System.out.println("ok"); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

优秀的个人博客,低调大师

SpringBoot 优雅停服

一、介绍 当外部流量请求到服务端接口执行业务逻辑的时候,若服务端此时执行关机 (kill),spring boot 默认情况会直接关闭容器(tomcat 等),导致此业务逻辑执行失败。在一些业务场景下:会出现数据不一致的情况,事务逻辑不会回滚。 在最新的 spring boot 2.3 版本,内置此功能,不需要再自行扩展容器线程池来处理, 目前 spring boot 嵌入式支持的 web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 Servlet 的 web 应用程序都支持优雅停机功能。 此处支持的 shutdown 行为,我们看下源码枚举如下: public enum Shutdown { /** * 优雅停机 (限期停机) * */ GRACEFUL, /** * 立即停机 */ IMMEDIATE; } 二、使用 当使用server.shutdown=graceful启用时,在 web 容器关闭时,web 服务器将不再接收新请求,并将等待活动请求完成的缓冲期。 缓冲期 timeout-per-shutdown-phase 配置:默认时间为 30S, 意味着最大等待 30S,超时候无论线程任务是否执行完毕都会停机处理,一定要根据项目实际需要合理设置。 以上配置完毕,重新发布以后,服务端就支持优雅停服。 三、触发优雅停服 1、对进城PID执行kill -2 而不是 kill -9 kill -9,暴力美学强制杀死进程,不会执行 ShutdownHook;但是 kill -2 相当于快捷键 Ctrl + C 会触发 Java 的 ShutdownHook 事件处理进行优雅停机或者一些后置处理。可参考以下源码: @Override public void registerShutdownHook() { if (this.shutdownHook == null) { // No shutdown hook registered yet. this.shutdownHook = new Thread(SHUTDOWN_HOOK_THREAD_NAME) { @Override public void run() { synchronized (startupShutdownMonitor) { doClose(); } } }; Runtime.getRuntime().addShutdownHook(this.shutdownHook); } } 2、通过 actuate 端点实现优雅停机 POST 请求 /actuator/shutdown 即可执行优雅关机。源码解析如下: @Endpoint(id = "shutdown", enableByDefault = false) public class ShutdownEndpoint implements ApplicationContextAware { @WriteOperation public Map<String, String> shutdown() { Thread thread = new Thread(this::performShutdown); thread.setContextClassLoader(getClass().getClassLoader()); thread.start(); } private void performShutdown() { try { Thread.sleep(500L); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } // 此处close 逻辑和上边 shutdownhook 的处理一样 this.context.close(); } } 三、不同spring boot嵌入式 web 容器优雅停机行为区别 -------------------------------------- 版权声明:本文为【PythonJsGo】博主的原创文章,转载请附上原文出处链接及本声明。 博主主页:https://my.oschina.net/u/3375733 本篇文章同步在个人公众号:

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册